運算子
概述及用途
什麼是運算子?(亦稱「運算元」或「運算符號」),舉例說明如下: 「$total = $a + $b;」,其中" $a + $b "稱為「表示式」(expressions),"+" 即稱為運算子(operator) 在PHP的運算子裡,大致歸類下列十種:
|
表列各運算子
1.算術運算子 |
2.指定運算子( = ) |
||||||||||||||||||||||||||||||
|
|
3.位元運算子 |
|
4.比較運算子 |
||||||||||||||||||||||||||||||
|
5.錯誤控制運算子 |
||
說明 | PHP
支援一個錯誤控制運算符「@」。將其放置在一個 PHP
運算式之前,該運算式可能產生的任何錯誤資訊都被忽略掉。這功能有幾個目的: 安全性:避免因程式上的某些錯誤訊息將一些訊息告知了外界,而暴露系統上可能的安全 漏洞。 美觀:因為錯誤訊息會造成顯示畫面的混亂。 基本,但這個功能得在安裝PHP時啟動 track_errors 功能(也可事後在php.ini中修改),運算式所產生的任何錯誤資訊才會被存放在總體變數 $php_errormsg 裡,並顯示出來。 使用方式如:
|
6.執行運算子 |
說明 | PHP
支持一個執行運算符:反引號「` .... `」。注意這不是單引號!PHP
將嘗試將反引號中的內容作為shell命令來執行,並將其輸出資訊返回(例如,可以賦給一個變數),但只能在command文字命令模式下執行,不可透過Web
Server執行。 ※反引號運算子在啟動了 safe mode 或者關閉了 shell_exec() 時是無效的。 使用方式如:
|
7.加一 / 減一運算子 |
|
範例 | 加一 / 減一運算子 | 顯示結果 |
<?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>"; ?> |
8.邏輯運算子 |
|
9.字串運算子 |
說明 | 有兩個字串運算符。第一個是連接運算符(“.”),它返回其左右參數連接後的字串。第二個是連接指定運算子(“.=”),它將右邊參數附加到左邊的參數後方。 |
範例 | 字串運算子應用 | 顯示結果 |
<?php $a = "中央大學"; $b = $a . "工學院"; echo $b . "<BR>"; $c = "機械系"; $c .= "網路管理小組"; echo $c; ?> |
10.陣列運算子 |
說明 |
PHP 僅有的一個陣列運算子是「 +」 運算子。它把右邊的陣列附加到左邊的陣列後方 ,但是重複的索引值不會被覆蓋。 |
範例 | 陣列運算子應用 | 顯示結果 |
<?php $a = array("一月", "二月", "10"=>"十月"); $b = array("星期一", "星期二", "星期三"); $c = $a + $b; var_dump($c); // var_dump( ) 是顯示變數內容的函數 ?> |
||
運算子優先順序 |
說明 |
運算子優先順序指定了兩個運算式綁定得有多“緊密”。例如,運算式 1 + 5 * 3 的結果是 16 而不是 18
是因為乘號(“*”)的優先順序比加號(“+”)高。必要時可以用括弧來強制改變優先順序。例如:(1 + 5) * 3 的值為 18。 下表從低到高列出了運算子的優先順序。 |
|
另提:條件運算子 |
說明 |
與許多程式語言一樣,PHP 也可以使用 A ? B : C 形式(A True 則 B 否則
C),其中的 A, B, C 是 expression 形式。實際上這種寫法也可以用 if...else 來取代,但程式就沒那麼精簡了。 |
範例 | 條件運算子應用 | 顯示結果 |
<?php $a=6; $b=($a>0)?5:10; echo $b."<br>"; //另一種寫法 $a=6; ($a>0)?$b=5:$b=10; echo $b."<br>"; //if...else 寫法 $a=6; if($a>0) $b=5; else $b=10; echo $b; ?> |