看似簡單的東西,在實際運用中,還是很有趣的
算術運算子
運算子名稱結果
$a + $b 加法$a 和$b 的和
$a - $b 減法$a 和$b 的差
$a * $b 乘法$a 和$b 的積
$a / $b 除法$a 除以$b 的商
$a % $b 取模$a 除以$b 的餘數
$a % $b 取模$a 除以$b 的餘數遞增/遞減運算子
運算子名稱結果
++$a 前加$a 的值加一,然後進行操作
$a++ 後加$a 的值先操作,後加一
--$a $a 的值減一,然後進行操作
$a-- 後減$a 的值先進行操作,後減一
實例:
複製代碼 代碼如下:
echo $a=5+”5th ”; //輸出:10
echo 10%3; //輸出:1
echo 10+ $a++; //輸出:20
echo 5- --$a; //輸出:-5
?>
比較運算子
運算子名稱結果
$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 $a > $b 大於TRUE,如果$a嚴格$b
$a $a >= $b 大於等於TRUE,如果$a 大於或等於$b
另一個條件運算子是「 ? : 」(或三元)運算子。
實例:
複製程式碼 程式碼如下:
var_dump(0=="a"); //輸出:bool(true)
var_dump(0=="00"); //輸出:bool(true )
var_dump(0==="00"); //輸出:bool(false)
var_dump(0"abc"); //輸出:bool(false)
var_dump(0!=="01" ); //輸出:bool(true)
$a=10;
$b=20;
$str=$a>$b? "true":"false";
echo $str; //輸出:false
?>
邏輯運算子
運算子名稱結果
$a 且 $b 邏輯與TRUE,若$a 與$b 皆為TRUE。
$a or $b 邏輯或 TRUE,如果 $a 或 $b 任一為TRUE。
$a xor $b 異或 TRUE,如果 $a 和 $b 不同時
! $a 邏輯非 TRUE,如果 $a 不為 TRUE。
$a && $b 邏輯與 TRUE,若 $a 與 $b 皆為TRUE。
$a || $b 邏輯或 TRUE,如果 $a 或 $b 任一為TRUE。
其中and與&& 、or與||是同一邏輯運算子的兩種寫法。
邏輯與和邏輯或 都是短路運算子。遇到下列邏輯運算式時,PHP解釋程式將不會計算右邊的運算式:
複製程式碼 程式碼如下:
$a=10;
if(false && (++$a));
echo $a; //輸出:10
$b=10;
if(true or (++$b));
echo $b; //輸出:10
?>
位元運算子符允許對整數數中指定的位元進行置位。如果左右參數都是字串,則位元運算子將操作字元的 ASCII 值。
表達式 名稱 結果
$a & $b 按位與 將把 $a 與 $b 中都為 1 的位元設為 1。
$a | $b 按位或 將把 $a 或 $b 中為 1 的位元設為 1。
$a ^ $b 按位異或 將把 $a 和 $b 中不同的位元設為 1。
~ $a 位元非 將 $a 中為 0 的位元設為 1,反之亦然。
$a $a >> $b 右移 將 $a 中的位元向右移動 $b 次(每一次 移動都表示「除以 2」)。
其他運算子
字串運算子
有兩個字串運算子。第一個是連接運算子(“.”),它會傳回其左右參數連接後的字串。第二個是連接賦值運算子(“.=”),它將右邊參數附加到左邊的參數後。
錯誤抑制運算子
在最常見的資料庫連線與檔案建立作業或出現除0等異常時,可以用@符號來抑制函數錯誤訊息輸出到瀏覽器端$a=@(5/0)
外部指令執行
使用``來執行外部系統指令,注意不是單引號,是ESC下面那個按鍵
複製程式碼 程式碼如下:
$out=`dir c:`;
print_r($out);
? >//不建議使用
實例:
複製程式碼 程式碼如下:
$a="hello";
$a.=" world! "; //等同於:$a=$a." world!";
echo $a; //輸出:hello world!
$m = 3; 🎜$m += 5; //等同於:$m=$m+5;
echo $m; //輸出:8
$c = ($b = 4) + 5;
echo $c; //輸出:9
?>
運算子優先權
下表從低到高列出了運算子的優先權。
結合方向運算子
左,
左or
左xor
左and
右print
右= += -= *= /= .= %= &= |= ^ ~= 左||
左&&
結合方向運算子
左|
左^
左左左&
無== != === !==
無無== != === !==
無無== !===
左+ - .
左* / %
右! ~ ++ -- (int) (float) (string) (array) (object) @
右[