運算元
★ 數值運算元(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 |
|