PHP運算子優先順序,php中的運算子優先順序是什麼樣的

時間 2021-10-17 05:00:00

1樓:

php運算子優先順序(由低到高)

結合方向 運算子

左 ,

左 or

左 xor

左 and

右 print

右 = += -= *= /= .= %= &= |= ^= ~= <<= >>=

左 ? :

左 ||

左 &&

左 |

左 ^

左 &

無 == != === !==

無 < <= > >=

左 << >>

左 + - .

左 * / %

右 ! ~ ++ -- (int) (float) (string) (array) (object) @

右 [

無 new

由此表可以看到,-的優先順序最高,其次是》,最後才是?:,而?:是左結合的,所以true先在左式中使用,從而最終得到3

2樓:

10-3>2 為最高優先順序

相當於(10-3>2) ? 0 : true而後 0 ? 5 : 3

0在計算機中被認為flase 因此答案是3請給分,謝謝~

3樓:匿名使用者

三目運算子的優先順序是比較低的,正確的應該是juzelong630說的那樣

php中的運算子優先順序是什麼樣的

4樓:

樓上覆制貼上的什麼玩意兒?看這個吧,php的所有運算子優先順序文件都在這裡了:網頁連結,希望採納

php中的||和or,有什麼區別呢?優先順序一樣麼?

5樓:

if(asdfjklkj==sdfjlk or sadfl==sdfkjh)和if(asdfads==hgk || asdfsad==fghdfgh)

前者全文來字顯得正規,檔次,

自只是or混在其中不是bai很好找;

du後者||符號明zhi顯好找,易懂。

優先dao級順序是

&&||

andor

優先順序順序知道的人不多,老手也沒多少背下來的,因為他們都加(括號)。

6樓:匿名使用者

是運算子優先順序的問題,|| 和 or 和 = 這三種符號的優先順序是:

|| > = > or

php語言php語言裡的位運算子&、|、^ 、~、〈〈 、〉〉這些符號我一個也不懂,希望高手給個全面的解釋!拜

7樓:匿名使用者

"&" 按位與運算

按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下:

00001001 (9的二進位制補碼)

&00000101 (5的二進位制補碼)

00000001 (1的二進位制補碼)

<?php

$a = 9;

$b = 5;

echo sprintf("%b", $a&$b);

?>

"|" 按位或運算

按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下:

00001001

|00000101

00001101 (十進位制為13)可見9|5=13

<?php

$a = 9;

$b = 5;

echo sprintf("%b", $a|$b)."\n"; //二進位制

echo sprintf("%d", $a|$b)."\n"; //十進位制

"^" 按位異或運算

按位異或運算子「^」是雙目運算子。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下:

00001001

^00000101

00001100 (十進位制為12)

<?php

$a = 9;

$b = 5;

echo sprintf("%b", $a^$b)."\n"; //二進位制

echo sprintf("%d", $a^$b)."\n"; //十進位制

"~" 求反運算

求反運算子~為單目運算子,具有右結合性。其功能是對參與運算的數的各二進位按位求反。

例如~9的運算為:

~(0000000000001001)結果為:1111111111110110

<?php

$a = 9;

$b = 5;

echo sprintf("%b", ~$a)."\n"; //二進位制

"〈〈" 左移運算

左移運算子「<<」是雙目運算子。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補0。

例如:a<<4

指把a的各二進位向左移動4位。如a=00000011(十進位制3),左移4位後為00110000(十進位制48)。

<?php

$a = 3;

$temp = $a<<4;

echo sprintf("%d", $temp)."\n"; //十進位制

「>>」 右移運算

右移運算子「>>」是雙目運算子。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。

例如:設 a=48,

a>>4

表示把00110000右移為00000011(十進位制3)。

應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定

<?php

$a = 48;

$temp = $a>>4;

echo sprintf("%d", $temp)."\n"; //十進位制

8樓:

各種語言都不全一樣的,我給你看看php的吧 能大概瞭解

章 15. 運算子

目錄運算子優先順序

算術運算子

賦值運算子

位運算子

比較運算子

錯誤控制運算子

執行運算子

遞增/遞減運算子

邏輯運算子

字串運算子

陣列運算子

型別運算子

運算子是可以通過給出的一或多個值(用程式設計行話來說,表示式)來產生另一個值(因而整個結構成為一個表示式)的東西。所以可以認為函式或任何會返回一個值(例如 print)的結構是運算子,而那些沒有返回值的(例如 echo)是別的東西。

有三種型別的運算子。第一種是一元運算子,只運算一個值,例如 !(取反運算子)或 ++(加一運算子)。

第二種是有限二元運算子,php 支援的大多數運算子都是這種。列表見下節運算子優先順序。

第三種是三元運算子:?:。它應該被用來根據一個表示式在另兩個表示式中選擇一個,而不是用來在兩個語句或者程式路線中選擇。把整個三元表示式放在擴號裡是個很好的主意。

運算子優先順序

運算子優先順序指定了兩個表示式繫結得有多「緊密」。例如,表示式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(「*」)的優先順序比加號(「+」)高。必要時可以用括號來強制改變優先順序。

例如:(1 + 5) * 3 的值為 18。如果運算子優先順序相同,則使用從左到右的左聯順序。

下表從高到低列出了運算子的優先順序。同一行中的運算子具有相同優先順序,此時它們的結合方向決定求值順序。

** 15-1. 運算子優先順序

結合方向 運算子 附加資訊

非結合 new new

左 [ array()

非結合 ++ -- 遞增/遞減運算子

非結合 ! ~ - (int) (float) (string) (array) (object) @ 型別

左 * / % 算數運算子

左 + - . 算數運算子和字串運算子

左 << >> 位運算子

非結合 < <= > >= 比較運算子

非結合 == != === !== 比較運算子

左 & 位運算子和引用

左 ^ 位運算子

左 | 位運算子

左 && 邏輯運算子

左 || 邏輯運算子

左 ? : 三元運算子

右 = += -= *= /= .= %= &= |= ^= <<= >>= 賦值運算子

左 and 邏輯運算子

左 xor 邏輯運算子

左 or 邏輯運算子

左 , 多處用到

左聯表示表示式從左向右求值,右聯相反。 例子 15-1. 結合方向

<?php

$a = 3 * 3 % 5; // (3 * 3) % 5 = 4

$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;

$b = 2;

$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5

?>

使用括號可以增強**的可讀性。

注: 儘管 ! 比 = 的優先順序高,php 仍舊允許類似如下的表示式:if (!$a = foo()),在此例中 foo() 的輸出被賦給了 $a。

9樓:匿名使用者

9999×2222+3333-3334

=(10000-1)×2222+(3333-3334)=10000×2222-2222+(-1)=22220000-2223

=22217777

在php中運算子優先順序的結合方向是什麼意思?

10樓:匿名使用者

說白了,就是運算子是從左向右算,還是從右向左算,特殊的是賦值的時候都是從右向左算的,別的記不清了...

php中字串的連線運算子是___ a - b + c & d .

11樓:匿名使用者

答案是:d

有兩個字串(string)運算子。第一個是連線運算子(「.」),它返回其左右引數連線後的字串。第二個是連線賦值運算子(「.=」),它將右邊引數附加到左邊的引數之後。

<?php

$a = "hello ";

$b = $a . "world!"; // now $b contains "hello world!"

$a = "hello ";

$a .= "world!";     // now $a contains "hello world!"

?>

12樓:陽光上的橋

選d,php連線字串使用小數點

13樓:匿名使用者

php中字串的連線運算子是 '.' 。(點)選d

php中的運算子優先順序是什麼樣的

樓上覆制貼上的什麼玩意兒?看這個吧,php的所有運算子優先順序文件都在這裡了 網頁連結,希望採納 php中的 和or,有什麼區別呢?優先順序一樣麼? if asdfjklkj sdfjlk or sadfl sdfkjh 和if asdfads hgk asdfsad fghdfgh 前者全文來字顯...

關於c 運算子優先順序的問題,C 中運算子優先順序的問題

運算子優先順序 在實際的開發中,可能在一個運算子 現多個運算子,那麼計算時,就按照優先順序級別的高低進行計算,級別高的運算子先運算,級別低的運算子後計算,具體運算子的優先順序見下表 運算子優先順序表 優先順序 運算子 結合性 1 從左到右 2 正 負 從右向左 3 從左向右 4 加 減 從左向右 5...

C 裡過載了的運算子是否還保持原來的優先順序別

c 還保持原來的優先順序別 袁方旭 規劃局規劃符合符合法規 堂糖卻 運算子過載的時候最好不要改變優先順序,容易混淆,而且可讀性也不好 過載並不能改變運算子的優先順序 要不然就亂套了 運算子過載的規則 1.友元運算子的引數規則與類成員運算子的引數規則不同,一員運算子必須顯式地宣告一個引數,二員運算子必...