php支援乙個錯誤的運算子:@ ;當將其放置在乙個php表示式之前,該表示式可能產生的任何錯誤資訊都被忽略掉
常用的運算子優先順序如下:
遞增/遞減 > ! > 算術運算子 > 大小比較 > (不)相等比較 > 引用 > 位運算子(^) > 位運算子(|) > 邏輯與 > 邏輯或 > 三目 > 賦值 > and > xor > or常考的運算子優先順序如下:
遞增/遞減 > 算術運算子 > 大小比較 > 邏輯與 > 邏輯或 > 三目 > 賦值 >運算子優先順序
結合方向
運算子附加資訊
無clone new
clone 和 new右**
算術運算子右++
--~(int)
(float)
(string)
(array)
(object)
(bool)
@型別、遞增/遞減、錯誤控制
無instanceof型別右
!邏輯運算子左*
/%算術運算子左+
-.算術運算子 和 字串運算子
左<<
>>
位運算子
無<
<=
>
>=
比較運算子無==
!====
!==<>
<=>
比較運算子左&
位運算子 和 引用左^
位運算子左|
位運算子左&&
邏輯運算子左||
邏輯運算子右??
null 合併運算子
左? :
三元運算子右=
+=-=
*=**=
/=.=
%=&=
|=^=
<<=
>>=
賦值運算子
右yield from
yield from
右yield
yield
左and
邏輯運算子
左xor
邏輯運算子左or
邏輯運算子
== 和 ===的區別:
==
:比較值是否相等;
===
:比較值與型別是否都相等;
注意false的七種情況,都是等值的整型 0
; 浮點
0.0; 空字串 『』; 零字串 『
0』; 布林型
false
; 空陣列 array(); null
短路作用
$a = true || $b == 3;// || 後面的表示式被短路,不會執行
$a = false && $b == 3;// && 後面的表示式被短路,不會執行
||、&& 和 or、and 的優先順序是不一樣的
$a = false || true; //"||"優先順序大於"=",$a 的值是 true
$a = false or true; // "or"優先順序小於"=",$a 的值是 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運算子考察點
運算子優先順序指定了兩個表示式繫結得有多 緊密 例如,表示式1 5 3的結果是 16 而不是 18 是因為乘號 的優先順序比加號 高。必要時可以用括號來強制改變優先順序。例如 1 5 3的值為18。如果運算子優先順序相同,那運算子的結合方向決定了該如何運算。例如,是左聯的,那麼1 2 3就等同於 1...
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...