PHP運算子考察點

2022-08-31 06:54:11 字數 1443 閱讀 7010

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

如果運算子優先順序相同,那運算子的結合方向決定了該如何運算。例如,"-"是左聯的,那麼1 - 2 - 3就等同於(1 - 2) - 3並且結果是-4.另外一方面,"="是右聯的,所以 $a = $b = $c 等同於 $a = ($b = $c)。

沒有結合的相同優先順序的運算子不能連在一起使用,例如1 < 2 > 1在php是不合法的。但另外一方面表示式1 <= 1 == 1是合法的, 因為==的優先順序低於<=

下表是php手冊所給的運算子優先順序:

總結常用的運算子優先順序如下:

遞增/遞減 > ! > 算術運算子 > 大小比較 > (不)相等比較 > 引用 > 位運算子(^) > 位運算子(|) > 邏輯與 > 邏輯或 > 三目 > 賦值 > and > xor > or

== 和 ===的區別:==:比較值是否相等;

===:比較值與型別是否都相等;

注意false的七種情況,都是等值的

重點記憶遞增/遞減運算子的運算規則,邏輯運算子的短路效果,在看到邏輯運算子時要多考慮優先順序的問題。

<?php 

$a = 0;

$b = 0;

if ($a = 3 > 0 || $b = 3 > 0)

思路:

/**

* if裡面有 = > || 三個運算子,根據運算子優先順序, ">" > "||" > "="

* 所以首先執行的是 3 > 0 ,然後執行 || ,3>0 為true,則|| 後面被短路 ,不被執行

* 所以$a = true ,$b = 0

* 進入if之後,$a++ ,$a還是true,$b++ ,$b = 1

* 因此最後的結果是 1 1(echo true,列印的是1)

*/

PHP運算子考察點

php支援乙個錯誤的運算子 當將其放置在乙個php表示式之前,該表示式可能產生的任何錯誤資訊都被忽略掉 常用的運算子優先順序如下 遞增 遞減 算術運算子 大小比較 不 相等比較 引用 位運算子 位運算子 邏輯與 邏輯或 三目 賦值 and xor or 常考的運算子優先順序如下 遞增 遞減 算術運算...

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...

PHP基礎 運算子 算術運算子 位運算子

1 將強制轉換為數字作加法運算 例 a 33 b 45.0 echo a b a b gettype a b 2 將強制轉換為數字作減法運算 例 a 33 b 45 echo a b a b gettype a b a 33.70 b 45.00 echo a b a b gettype a b 3...