定義
運算子即做運算的標識符號。PHP運算子一般分為算術運算子、賦值運算子、比較子、三元運算子、邏輯運算子、字串串連運算子、錯誤控制運算子、遞增遞減運算子和數組運算子
算術運算子
+(加法) $x + $y-(減法) $x - $y*(乘法) $x * $y/(除法) $x / $y%(求模) $x % $y
賦值運算子
PHP的賦值運算子有兩種,分別是直接賦值"="和引用賦值"&"
[1]直接賦值
直接賦值"="把右邊運算式的值賦給左邊的運算數。它將右邊運算式值複製一份,交給左邊運算數。換言之,首先給左邊運算數申請一塊記憶體,然後把複製的值放到這塊記憶體中
x = yx += yx -= yx *= yx /= yx %= y
[2]引用賦值
引用賦值&意味著兩個變數都指向同一個資料。它將使兩個變數共用一塊記憶體,如果這個記憶體儲存的資料變了,那麼兩個變數的值都會發生變化
";//測試內容1 echo $c."
";//測試內容2?>
比較子
比較子主要用來進行比較運算
== 等於 === 全等!= 不等<> 不等!== 不全等> 大於< 小於>= 大於等於<= 小於等於
";//bool(true) var_dump($a === $b); echo "
";//bool(false) var_dump($a != $b); echo "
";//bool(false) var_dump($a <> $b); echo "
";//bool(false) var_dump($a !== $b); echo "
";//bool(true) var_dump($a < $b); echo "
";//bool(false)?>
三元運算子
"?:"三元運算子是一個比較子,對於運算式(expr1)?(expr2):(expr3),如果expr1的值為true,則此運算式的值為expr2,否則為expr3
=60?"及格":"不及格"; echo $b;//及格?>
邏輯運算子
邏輯運算子主要是進行邏輯運算
and 與or 或xor 異或&& 與|| 或! 非
"; echo ($a or $c);//1 echo "
"; echo($a xor $c xor $d);//1 echo "
"; echo(!$c ? "通過" :"不通過");//通過 echo "
"; echo($a && $d ? "通過":"不通過");//不通過 echo "
"; echo ($b || $c || $d ? "通過":"不通過");//通過?>
字串運算子
字串串連運算子是為了將兩個字串進行串連
[1]串連運算子(.)
[2]串連賦值運算子(.=)
錯誤控制運算子
PHP提供了一個錯誤控制運算子@,對於一些可能會有運行過程中出錯的運算式,不希望出錯時顯示錯誤資訊時,將@放置在一個PHP運算式之前。如果啟用了track_error特性,運算式產生的任何錯誤資訊都被存放在變數$php_errormsg中,此變數在每次出錯時都會被覆蓋
[注意]錯誤控制首碼@不會屏蔽解析錯誤的資訊,不能把它放在函數或類的定義之前,也不能用於條件結構如if和foreach等
遞增/遞減運算子
++$x 前遞增$x++ 後遞增--$x 前遞減$x-- 後遞減
數組運算子
用於比較數組
+ 聯合== 相等=== 全等!= 不相等<> 不相等!== 不全等
"red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; var_dump($z);//array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" } echo "
";var_dump($x == $y);//bool(false)echo "
";var_dump($x === $y);//bool(false)echo "
";var_dump($x != $y);//bool(true)echo "
";var_dump($x <> $y);//bool(true)echo "
";var_dump($x !== $y);//bool(true)?>