運算元
★ 數值運算元(Arithmetic Operators)
| 運算元 |
用法 |
說明 |
| + |
$a + $b |
加法運算 |
| - |
$a - $b |
減法運算 |
| * |
$a * $b |
乘法運算 |
| / |
$a / $b |
除法運算 |
| % |
$a % $b |
模數運算(取餘數) |
★ 字串運算元(String Operators) 字串運算元只有一個,就是「.」,用來將字串連接起來,合併成為新字串。
★ 指定運算元(Assignment Operators)
| 運算元 |
用法 |
說明 |
| = |
$a = 5 |
$a 為 5 |
| .= |
$a .= "abc" |
$a 字串末尾再串接 abc |
| += |
$a += 3 |
$a 等於 $a 加上 3 之和 |
| -= |
$a -= 3 |
$a 等於 $a 減去 3 之差 |
| *= |
$a *= 3 |
$a 等於 $a 乘以 3 之積 |
| /= |
$a /= 3 |
$a 等於 $a 除以 3 之商 |
| %= |
$a %= 3 |
$a 等於 $a 除以 3 之餘數 |
★ 位元運算元(Bitwise Operators)
| 運算元 |
用法 |
說明 |
| & |
$a & $b |
且(AND) |
| | |
$a | $b |
或(OR) |
| ^ |
$a ^ $b |
互斥(XOR) |
| ~ |
~$a |
否(NOT) |
| >> |
$a >> $b |
向右移位 |
| << |
$a << $b |
向左移位 |
★ 比較運算元(Comparison Operators)
| 運算元 |
用法 |
說明 |
| = = |
$a = = $b |
等於 |
| = = = |
$a = = = $b |
Identical(值與型態均相等,PHP4 only) |
| ! = = |
$a ! = = $b |
Not Identical(值或型態不相等,PHP4 only) |
| != 或 <> |
$a != $b |
不等於 |
| < |
$a < $b |
小於 |
| > |
$a > $b |
大於 |
| <= |
$a <= $b |
小於等於 |
| >= |
$a >= $b |
大於等於 |
★ 條件運算元(Conditional Operator) 與許多程式語言一樣,PHP
也可以使用 A ? B : C 形式(A True 則 B 否則 C),其中的 A, B, C 是 expression
形式。實際上這種寫法也可以用 if...else 來取代,但程式就沒那麼精簡了。例:
<?
$a = 6;
$b = ( $a > 0 ) ? 5 : 10;
echo $b; // $b 值為 5
// 另一種寫法:
$a = 6;
( $a > 0 ) ? $b = 5 : $b = 10;
echo $b; // $b 值為 5
// if ... else 寫法:
$a = 6;
if ( $a > 0 )
$b = 5;
else
$b = 10;
echo $b; // $b 值為 5
?>
★ 錯誤控制運算元(Error Control
Operators) PHP 提供一個錯誤控制運算元「@」,在運算式中如果含有它,則所有的錯誤訊息均會被忽略。
★ 執行運算元(Execution Operators) PHP 支援 backticks(``)(倒單引號,在鍵盤上「數字
1」的左側)的執行運算,在裡頭的字串將被視為 shell command 來執行,而執行的輸出就是「值」,可以設定給其他變數。
例:
<?
// 列出 example 目錄下的檔案與目錄
$output = `ls -al example`;
echo "<pre>$output</pre>";
?>
執行結果:
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in
/home/chensh/php/A_7.php on line 224
註:由於 backticks 的執行運算,在 PHP 的 Safe Mode 為 ON
時是無用的;若上述的範例呈現錯誤的話,代表本站所在的伺服器已將 Safe Mode 設定為 ON 了。
★ 遞增/遞減運算元(Incrementing/Decrementing
Operators)
| 運算元 |
用法 |
說明 |
| ++ |
++$a |
Pre-increment(先加 1 再傳回值) |
| $a++ |
Post-increment(先傳回值再加 1) |
| - - |
- -$a |
Pre-decrement(先減 1 再傳回值) |
| $a- - |
Post-decrement(先傳回值再減 1) |
<?
$a = 5;
$a++; // $a = 6
$b = $a++; // $a = 7, $b = 6
$b = ++$a; // $a = 8, $b = 8
?>
★ 邏輯運算元(Logical Operators)
| 運算元 |
用法 |
說明 |
| and |
$a and $b |
且(AND) |
| && |
$a && $b |
且(AND) |
| or |
$a or $b |
或(OR) |
| || |
$a || $b |
或(OR) |
| xor |
$a xor $b |
互斥(XOR) |
| ! |
!$a |
否(NOT) |
★ 優先等級 在 PHP 的運算優先順序可以參考下面的表格,在多種運算元混合使用的情形下,愈往下表示優先權愈高。不過,在複雜的運算式最好能加上 (
) 以避免出錯。
| 運算元 |
結合規則 |
| , |
left |
| or |
left |
| xor |
left |
| and |
left |
| print |
right |
|
= += -= *= /= .= %= &= |= ^= ~= <<= >>= |
left |
| ? : |
left |
| || |
left |
| && |
left |
| | |
left |
| ^ |
left |
| & |
left |
| = = != = = = != = |
non-associative |
| < <= > >= |
non-associative |
| << >> |
left |
| + - . |
left |
| * / % |
left |
| ! ~ ++ -- (int) (double) (string) (array) (object) @ |
right |
| [ |
right |
| new |
non-associative |
|