PHP 快速導覽 - 運算子




PHP 提供多樣、功能完整的運算子 (operator) ,依運算子結合後運算的優先次序 (precedence) ,如下列表

clone new
[
++ -- ~ (int) (float) (string) (array) (object) (bool) @
instanceof
!
* / %
+ - .
<< >>
< <= > >=
== != === !== <>
&
^
|
&&
||
? :
= += -= *= /= .= %= &= |= ^= <<= >>= =>
and
xor
or
,


依功能區分,可分為
  • 算術運算子 (arithmetic operator)
  • 指派運算子 (assignment operator)
  • 位元運算子 (bitwise operator)
  • 比較運算子 (comparison operator)
  • 錯誤控制運算子 (error control operator)
  • 執行運算子 (execution operator)
  • 遞增遞減運算子 (incrementing/decrementing operator)
  • 邏輯運算子 (logical operator)
  • 字串運算子 (string operator)
  • 陣列運算子 (array operator)
  • 型態運算子 (type operator)


算術運算子


算術運算子包含負數、加、減、乘、除、取餘數,至少需要一兩個運算元 (operand) 才構成運算式 (expression) ,如下列表
運算子功能範例
-負數-$a
+$a + $b
-$a - $b
*$a * $b
/$a / $b
%取餘數$a % $b


指派運算子


最基本的指派運算子為單一個等號 = ,這是用來將等號右邊的值拷貝給給左邊的變數 (variable) 資料。等號也可以跟其他運算子合用,會直接將結果儲存到原變數之中,如
運算子功能範例
=指派$a = 1
+=相加同時指派$a += 1
.=連接同時指派$a .= 1


位元運算子


整數可進行逐位元運算的運算子,例如某 16 位元 (bit) 整數 (integer) 如下
0000111100001111


取其補數 (complement) 該整數會變成
1111000011110000


位元運算子如下列表
運算子功能範例
&逐位元且$a & $b
|逐位元或$a | $b
^逐位元互斥或$a ^ $b
~逐位元非~ $a
<<向左位移$a << $b
>>向右位移$a >> $b


比較運算子


比較運算子需要兩個運算元,包含小於、小於等於、大於、大於等於,另外有測試相等性的運算子,運算結果會是布林值,不是 True 就是 False
運算子功能範例
==判斷兩個變數是否相等$a == $b
===判斷兩個變數是否相等而且型態相同$a === $b
!=判斷兩個變數是否不相等$a != $b
<>判斷兩個變數是否不相等$a <> $b
!==判斷兩個變數是否不相等而且型態不相同$a !== $b
<判斷是否小於$a < $b
>判斷是否大於$a > $b
<=判斷是否小於或等於$a <= $b
>=判斷是否大於或等於$a >= $b


錯誤控制運算子


錯誤控制運算子有 @ ,這是準備在發生錯誤時顯示錯誤訊息的。


執行運算子


執行運算子有 `` ,注意這跟單引號 ' 不同,這用來執行命令列指令。


遞增遞減運算子


遞增遞減運算子用來將變數遞增 1 或遞減 1
運算子功能範例
++在運算式之前遞增++$a
++在運算式之後遞增$a++
--在運算式之前遞減--$a
--在運算式之後遞減$a--


邏輯運算子


邏輯運算子包含邏輯「非」,施用於單一運算元,其他邏輯「且」、邏輯「或」、邏輯「互斥或」都需要兩個運算元
運算子功能範例
and$a and $b
or$a or $b
xor互斥或$a xor $b
!!$a
&&$a && $b
||$a || $b


字串運算子


字串運算子有 . ,這用來連接兩個字串。


陣列運算子


陣列運算子如下
運算子功能範例
+取兩個陣列的聯集$a + $b
==判斷兩個陣列是否有相同的 key/value 配對$a == $b
===判斷兩個陣列是否有相同型態與順序的 key/value 配對$a === $b
!=判斷兩個陣列是否不具有相同的 key/value 配對$a != $b
<>判斷兩個陣列是否不具有相同的 key/value 配對$a <> $b
!==判斷兩個陣列是否不具有相同型態與順序的 key/value 配對$a !== $b


型態運算子


型態運算子有 instanceof ,用以判斷遍數是否屬於某一類別。


中英文術語對照
運算子operator
優先次序precedence
算術運算子arithmetic operator
指派運算子assignment operator
位元運算子bitwise operator
比較運算子comparison operator
錯誤控制運算子error control operator
執行運算子execution operator
遞增遞減運算子incrementing/decrementing operator
邏輯運算子logical operator
字串運算子string operator
陣列運算子array operator
型態運算子type operator
運算元operand
運算式expression
變數variable
位元bit
整數integer
補數complement


您可以繼續參考
基本概念
標記


相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁


參考資料
http://www.php.net/manual/en/language.operators.php
http://www.php.net/manual/en/language.operators.arithmetic.php
http://www.php.net/manual/en/language.operators.assignment.php
http://www.php.net/manual/en/language.operators.bitwise.php
http://www.php.net/manual/en/language.operators.comparison.php
http://www.php.net/manual/en/language.operators.errorcontrol.php
http://www.php.net/manual/en/language.operators.execution.php
http://www.php.net/manual/en/language.operators.increment.php
http://www.php.net/manual/en/language.operators.logical.php
http://www.php.net/manual/en/language.operators.string.php
http://www.php.net/manual/en/language.operators.array.php
http://www.php.net/manual/en/language.operators.type.php

沒有留言: