運算子

概述及用途
    什麼是運算子?(亦稱「運算元」或「運算符號」),舉例說明如下:

「$total = $a + $b;」,其中" $a + $b "稱為「表示式」(expressions),"+" 即稱為運算子(operator)

在PHP的運算子裡,大致歸類下列十種:
  1. 算術運算子
  2. 指定運算子
  3. 位元運算子
  4. 比較運算子
  5. 加一/減一運算子
  6. 邏輯運算子
  7. 字串運算子
  8. 陣列運算子

表列各運算子

1.算術運算子

2.指定運算子( = )

運算子
範例
用途
+
$a + $b
$a 和 $b 的和。
-
$a - $b
$a 和 $b 的差。
*
$a * $b
$a 和 $b 的乘積。
/
$a / $b
$a 除以 $b 的商。
%
$a % $b
$a 除以 $b 的餘數。
標準式
簡單式
$a = $a + $b
$a += $b
$a = $a - $b
$a -= $b
$a = $a * $b
$a *= $b
$a = $a / $b
$a /= $b
$a = $a % $b
$a %= $b

3.位元運算子

範例

各位元執行動作

結果
$a & $b And(且) 將在 $a 和 $b 中都為 1 的位設為 1。
$a | $b Or(或) 將在 $a 或者 $b 中為 1 的位設為 1。
$a ^ $b Xor(互斥) 將在 $a 和 $b 中不同的位設為 1。
~ $a Not(補數) 將 $a 中為 0 的位設為 1,反之亦然。
$a << $b Shift left(左移) 將 $a 中的位向左移動 $b 次(每一次移動都表示“乘以 2”)。
$a >> $b Shift right(右移) 將 $a 中的位向右移動 $b 次(每一次移動都表示“除以 2”)。

4.比較運算子

範例
名稱
解釋
$a = = $b
等於
TRUE,如果 $a 等於 $b。
$a = = = $b
全等
TRUE,如果 $a 等於 $b,並且它們的類型也相同。(PHP 4 only)
$a != $b
不等
TRUE,如果 $a 不等於 $b。
$a <> $b
不等
TRUE,如果 $a 不等於 $b。
$a != = $b
非全等
TRUE,如果 $a 不等於 $b,或者它們的類型不同。(PHP 4 only)
$a < $b
小與
TRUE,如果 $a 小於 $b。
$a > $b
大於
TRUE,如果 $a 大於 $b。
$a <= $b
小於等於
TRUE,如果 $a 小於或者等於 $b。
$a >= $b
大於等於
TRUE,如果 $a 大於或者等於 $b。

5.加一 / 減一運算子

範例
名稱
解釋
++$a
前加
$a 的值加一,然後返回 $a。
$a++
後加
返回 $a,然後將 $a 的值加一。
--$a
前減
$a 的值減一, 然後返回 $a。
$a--
後減
返回 $a,然後將 $a 的值減一。
範例 加一 / 減一運算子 顯示結果
<?php
echo "<h3>a++</h3>";
$a = 5;
echo "前a = ".$a."<br>中a = ".$a++."<br>後a = ".$a."<br>";

echo "<h3>++a</h3>";
$a = 5;
echo "前a = ".$a."<br>中a = ".++$a."<br>後a = ".$a."<br>";

echo "<h3>a--</h3>";
$a = 5;
echo "前a = ".$a."<br>中a = ".$a--."<br>後a = ".$a."<br>";

echo "<h3>--a</h3>";
$a = 5;
echo "前a = ".$a."<br>中a = ".--$a."<br>後a = ".$a."<br>";
?>

6.邏輯運算子

範例
名稱
解釋
$a and $b
And(邏輯與)
TRUE,如果 $a 與 $b 都為 TRUE。
$a or $b
Or(邏輯或)
TRUE,如果 $a 或 $b 任一為 TRUE。
$a xor $b
Xor(邏輯互斥)
TRUE,如果 $a 或 $b 任一為 TRUE,但不同時是。
! $a
Not(邏輯非)
TRUE,如果 $a 不為 TRUE。
$a && $b
And(邏輯與)
TRUE,如果 $a 與 $b 都為 TRUE。
$a || $b
Or(邏輯或)
TRUE,如果 $a 或 $b 任一為 TRUE。

7.字串運算子

說明     有兩個字串運算符。第一個是連接運算符(“.”),它返回其左右參數連接後的字串。第二個是連接指定運算子(“.=”),它將右邊參數附加到左邊的參數後方。
範例 字串運算子應用 顯示結果
<?php
$a = "中央大學";
$b = $a . "工學院";
echo $b . "<BR>";

$c = "機械系";
$c .= "網路管理小組";
echo $c;
?>

8.陣列運算子

說明     PHP 僅有的一個陣列運算子是「 +」 運算子。它把右邊的陣列附加到左邊的陣列後方
,但是重複的索引值不會被覆蓋。
範例 陣列運算子應用 顯示結果
<?php
$a = array("一月", "二月", "10"=>"十月");
$b = array("星期一", "星期二", "星期三");
$c = $a + $b;

var_dump($c); // var_dump( ) 是顯示變數內容的函數
?>

9.運算子優先順序

說明     運算子優先順序指定了兩個運算式綁定得有多“緊密”。例如,運算式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優先順序比加號(“+”)高。必要時可以用括弧來強制改變優先順序。例如:(1 + 5) * 3 的值為 18。
下表從低到高列出了運算子的優先順序。
 
優先等級
結合方向
運算子
   低
 
 
 
 
 
 
,
or
xor
and
print
= += -= *= /= .= %= &= |= ^= ~= <<= >>=
? :
||
&&
|
^
&
== != === !==
< <= > >=
<< >>
+ - .
* / %
! ~ ++ -- (int) (float) (string) (array) (object) @
[
new