運算符是能夠經過給出的一或多個值(用編程行話來講,表達式)來產生另外一個值(於是整個結構成爲一個表達式)的東西。因此能夠認爲函數或任何會返回一個值(例如 print)的結構是運算符,而那些沒有返回值的(例如 echo)是別的東西。php
有三種類型的運算符。第一種是一元運算符,只運算一個值,例如 !(取反運算符)或 ++(加一運算符)。第二種是有限二元運算符,PHP 支持的大多數運算符都是這種。列表見下節運算符優先級。html
第三種是三元運算符:?:。它應該被用來根據一個表達式在另兩個表達式中選擇一個,而不是用來在兩個語句或者程序路線中選擇。把整個三元表達式放在擴號裏是個很好的主意。編程
結合方向 | 運算符 | 附加信息 |
---|---|---|
非結合 | clone new | clone 和 new |
左 | [ | array() |
非結合 | ++ -- | 遞增/遞減運算符 |
非結合 | ~ - (int) (float) (string) (array) (object) (bool) @ | 類型 |
非結合 | instanceof | 類型 |
右結合 | ! | 邏輯操做符 |
左 | * / % | 算術運算符 |
左 | + - . | 算術運算符和字符串運算符 |
左 | << >> | 位運算符 |
非結合 | < <= > >= <> | 比較運算符 |
非結合 | == != === !== | 比較運算符 |
左 | & | 位運算符和引用 |
左 | ^ | 位運算符 |
左 | | | 位運算符 |
左 | && | 邏輯運算符 |
左 | || | 邏輯運算符 |
左 | ? : | 三元運算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= | 賦值運算符 |
左 | and | 邏輯運算符 |
左 | xor | 邏輯運算符 |
左 | or | 邏輯運算符 |
左 | , | 多處用到 |
左聯表示表達式從左向右求值,右聯相反。使用括號能夠加強代碼的可讀性。函數
除法運算符老是返回浮點數。只有在下列狀況例外:兩個操做數都是整數(或字符串轉換成的整數)而且正好能整除,這時它返回一個整數。oop
取模運算符的操做數在運算以前都會轉換成整數(除去小數部分)。spa
例子 | 名稱 | 結果 |
---|---|---|
$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」)。 |
例子 | 名稱 | 結果 |
---|---|---|
$a == $b | 等於 | TRUE,若是 $a 等於 $b。 |
$a === $b | 全等 | TRUE,若是 $a 等於 $b,而且它們的類型也相同。(PHP 4 引進) |
$a != $b | 不等 | TRUE,若是 $a 不等於 $b。 |
$a <> $b | 不等 | TRUE,若是 $a 不等於 $b。 |
$a !== $b | 非全等 | TRUE,若是 $a 不等於 $b,或者它們的類型不一樣。(PHP 4 引進) |
$a < $b | 小與 | TRUE,若是 $a 嚴格小於 $b。 |
$a > $b | 大於 | TRUE,若是 $a 嚴格 $b。 |
$a <= $b | 小於等於 | TRUE,若是 $a 小於或者等於 $b。 |
$a >= $b | 大於等於 | TRUE,若是 $a 大於或者等於 $b。 |
若是比較一個整數和字符串,則字符串會被轉換爲整數。若是比較兩個數字字符串,則做爲整數比較。.net