[SQL與PHP] PHP 簡介--運算元



[SQL與PHP] PHP 簡介--運算元

運算元

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