運算子號
運算子號可以用來處理數字、字串及其它需要比較運算的條件。php 的運算子號和 c 語言的運算子號與很類似,對於有經驗的程式設計人員,應可以很順利的掌握 php 的運算子號。
不同的運算子號,其實還是有優先順序,就像小時候在學數學時,老師會教:先乘除、後加減。在 php 的運算優先順序可以參考下面的表格,在混合式的情形下,愈往下表示優先權愈高。
左至右or左至右xor左至右and左至右.= &= |= /= %= ^= = += -= *=左至右? :左至右||左至右&&左至右|左至右^左至右&左至右== !=不限< <= >= >不限<< >>左至右+ - .左至右* / %左至右! ~ ++ -- @右至左[]右至左 運算子號 結合規則
就像先哲說的:物有本末、事有終始,知所先後,則近道矣,在運算時只要照著運算優先順序寫出來的程式,應該不會發生結果和預期不同的情形。在寫作時多注意細節,可以減少調試的痛苦!
邏輯運算
邏輯運算 (logical operators) 通常用來測試真假值。最常見到的邏輯運算就是迴圈的處理,用來判斷是否該離開迴圈或繼續執行迴圈內的指令。
<小於>大於<=小於或等於>=大於或等於==等於!=不等於&&而且 (and)and而且 (and)||或者 (or)or或者 (or)xor異或 (xor)!不 (not)
<?
$a = 5;
if ($a != 5) {
echo "$a 不是 5";
} else {
echo "$a 是 5";
}
?>
PHP 位元運算
php 的位元運算子 (bitwise operators) 共有六個,提供數字做一些快速而低階的運算。要瞭解更多有關位元運算的資訊,可以參考離散數學方面的書籍。
&且 (and)|或 (or)^異或 (xor)<<向左移位>>向右移位~取 1 的補數 符號 意義
賦值運算
賦值運算 (assignment operator) 有時會讓人搞得一頭霧水,不過它可以讓程式更精簡,增加程式的執行效率。
=將右邊的值連到左邊+=將右邊的值加到左邊-=將右邊的值減到左邊*=將左邊的值乘以右邊/=將左邊的值除以右邊%=將左邊的值對右邊取餘數.=將右邊的字串加到左邊
<?php
$a = 5;
$a += 2; // 即 $a = $a + 2;
echo $a."<br>\n";
$b = "哇";
$b .= "哈"; // $b = "哇哈";
$b .= "哈"; // $b = "哇哈哈";
echo "$b<br>\n";
?>
字串運算子
字串運算 (string operator) 的運算子號只有一個,就是英文的句號 .。它可以將字串串連起來,變成合并的新字串。
以下是字串運算的例子
<?php
$a = "php 4";
$b = "功能強大";
echo $a.": ".$b;
?>
算術運算
算術運算 (arithmetic operators) 符號,就是用來處理四則運算的符號,這是最簡單,也最常用的符號,尤其是數位處理,幾乎都會使用到算術運算子號。
+加法運算-減法運算*乘法運算/除法運算%取餘數++累加--遞減 符號 意義
以下為簡單的算術運算範例
<?php
$a = 8;
$b = 2;
$c = 3;
echo $a+$b."<br>\n";
echo $a-$b."<br>\n";
echo $a*$b."<br>\n";
echo $a/$b."<br>\n";
echo $a%$c."<br>\n";
$a++;
echo $a."<br>\n";
$c--;
echo $c;
?>
其它運算子號
除了上述的運算子號之外,還有一些運算子號難以歸類。
$變數
&變數的地址 (加在變數前)
@不顯示錯誤資訊 (加在函數前)-
>類的方法或者屬性
=>數組的元素值
? :三元運運算元
其中比較特殊的是三元運運算元 ? :,以下例來解釋
(expr1) ? (expr2) : (expr3);
若 expr1 的運算結果為 true,則執行 expr2;否則執行 expr3。實際上它有點類以 if...else 迴圈,但可以讓程式較精簡有效率。