PHP中的運算子

2021-07-04 22:18:15 字數 3407 閱讀 2601

運算子描述+

-*/除法運算子總是返回浮點數。只有在下列情況例外:兩個運算元都是整數(或字串轉換成的整數)並且正好能整除,這時它返回乙個整數。

%取模運算子的運算元在運算之前都會轉換成整數(除去小數部分)。取模運算子 % 的結果和被除數的符號(正負號)相同。即 a%

b 的結果和 $a 的符號相同。

echo (5 % 3)."\n";           // prints 2

echo (5 % -3)."\n"; // prints 2

echo (-5 % 3)."\n"; // prints -2

echo (-5 % -3)."\n"; // prints -2

基本的賦值運算子是「=」

「組合運算子」

$a = 3;

$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;

$b = "hello ";

$b .= "there!"; // sets $b to "hello there!", just like $b = $b . "there!";

例子名稱

結果$a & $b

and(按位與)

將把 $a 和 $b 中都為 1 的位設為 1

$a | $b

or(按位或)

將把 $a 和 $b 中任何乙個為 1 的位設為 1

$a ^ $b

xor(按位異或)

將把 $a 和 $b 中乙個為 1 另乙個為 0 的位設為 1

~ $a

not(按位取反)

將 $a 中為 0 的位設為 1,反之亦然

$a << $b

shift left(左移)

將 $a 中的位向左移動 $b 次(每一次移動都表示「乘以 2」)

$a >> $b

shift right(右移)

將 $a 中的位向右移動 $b 次(每一次移動都表示「除以 2」)

左移時右側以零填充,符號位被移走意味著正負號不被保留。右移時左側以符號位填充,意味著正負號被保留。

例子名稱

結果$a == $b

等於true,如果型別轉換後 $a 等於 $b

$a === $b

全等true,如果 $a 等於 $b,並且它們的型別也相同

$a != $b

不等true,如果型別轉換後 $a 不等於 $b

$a <> $b

不等true,如果型別轉換後 $a 不等於 $b

$a !== $b

不全等true,如果 $a 不等於 $b,或者它們的型別不同

$a < $b

小與true,如果 $a 嚴格小於 $b

$a > $b

大於true,如果 $a 嚴格大於 $b

$a <= $b

小於等於

true,如果 $a 小於或者等於 $b

$a >= $b

大於等於

true,如果 $a 大於或者等於 $b

如果比較乙個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行。此規則也適用於 switch 語句。當用 === 或 !== 進行比較時則不進行型別轉換,因為此時型別和數值都要比對。

<?php 

var_dump(0 == "a"); // 0 == 0 -> true

var_dump("1" == "01"); // 1 == 1 -> true

var_dump("10" == "1e1"); // 10 == 10 -> true

var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a")

?>

另乙個條件運算子是「?:」(或三元)運算子

php 支援乙個錯誤控制運算子:@。當將其放置在乙個 php 表示式之前,該表示式可能產生的任何錯誤資訊都被忽略掉。

@ 運算子只對表示式有效。對新手來說乙個簡單的規則就是:如果能從某處得到值,就能在它前面加上 @ 運算子。例如,可以把它放在變數,函式和 include 呼叫,常量,等等之前。不能把它放在函式或類的定義之前,也不能用於條件結構例如 if 和 foreach 等

php 支援乙個執行運算子:反引號(` `)。注意這不是單引號!php 將嘗試將反引號中的內容作為shell命令來執行,並將其輸出資訊返回(即,可以賦給乙個變數而不是簡單地丟棄到標準輸出)。使用反引號運算子「`」的效果與函式 shell_exec() 相同。

反引號不能在雙引號字串中使用

++

--

例子名稱

結果$a and $b

and(邏輯與)

true,如果 $a 和 $b 都為 true

$a or $b

or(邏輯或)

true,如果 $a 或 $b 任一為 true

$a xor $b

xor(邏輯異或)

true,如果 $a 或 $b 任一為 true,但不同時是

! $a not(邏輯非)

true,如果 $a 不為 true

$a && $b

and(邏輯與)

true,如果 $a 和 $b 都為 true

$a || $b

or(邏輯或)

true,如果 $a 或 $b 任一為 true

「與」和「或」有兩種不同形式運算子的原因是它們運算的優先順序不同

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

例子名稱

結果$a + $b

聯合$a 和 $b 的聯合

$a == $b

相等如果 $a 和 $b 具有相同的鍵/值對則為 true

$a === $b

全等如果 $a 和 $b 具有相同的鍵/值對並且順序和型別都相同則為 true

$a != $b

不等如果 $a 不等於 $b 則為 true

$a <> $b

不等如果 $a 不等於 $b 則為 true

$a !== $b

不全等如果 $a 不全等於 $b 則為 true

+運算子把右邊的陣列元素附加到左邊的陣列後面,兩個陣列中都有的鍵名,則只用左邊陣列中的,右邊的被忽略。

instanceof 用於確定乙個 php 變數是否屬於某一類 class 的例項

PHP中的《運算子

php中提供了 運算子構建多行字串序列的方法,通常稱為here document或表示為heredoc的簡寫。這種方法詳細表述了字串的字面值,並在文字中保留了字串的下劃線和其他空格 包括縮排 例如 1 2 author wixy 3echo end 4thisis a headline 5 this...

PHP中的運算子

加法 減法 乘法 除法 求餘數 自增 自減 a 10 echo a 3 b a echo b echo a c a echo c echo a name aaron job 老師 echo 我的名字是 name.我的職業是 job 賦值 x 3相當於 x x 3 大於 小於 大於等於 小於等於 等於...

php運算子取整 PHP 運算子

數學計算 1.使用 abs 函式設定數值的絕對值。輸出 5 echo abs 5 2.使用 ceil 函式進製取整。輸出 6 echo ceil 5.8 echo ceil 5.1 3.使用 floor 函式截斷取整。輸出 5 echo floor 5.8 echo floor 5.1 4.使用 r...