PHP網(wǎng)站建設手冊之運算符優(yōu)先級_網(wǎng)絡(luò )編程_奇迪科技(深圳)有限公司(m.cheanjie.com)
運算符優(yōu)先級指定了兩個(gè)表達式綁定得有多“緊密”。例如,表達式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優(yōu)先級比加號(“+”)高。必要時(shí)可以用括號來(lái)強制改變優(yōu)先級。例如:(1 + 5) * 3 的值為 18。如果運算符優(yōu)先級相同,則使用從左到右的左聯(lián)順序
結合方向 | 運算符 |
---|---|
非結合 | clone new |
左 | [ |
非結合 | ++ -- |
非結合 | ~ - (int) (float) (string) (array) (object) (bool) @ |
非結合 | instanceof |
右結合 | ! |
左 | * / % |
左 | + - . |
左 | << >> |
非結合 | < <= > >= <> |
非結合 | == != === !== |
左 | & |
左 | ^ |
左 | | |
左 | && |
左 | || |
左 | ? : |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= |
左 | and |
左 | xor |
左 | or |
左 | , |
還記得學(xué)校里學(xué)到的基本數學(xué)知識嗎?就和它們一樣。
例子 | 名稱(chēng) | 結果 |
---|---|---|
-$a | 取反 | $a 的負值。 |
$a + $b | 加法 | $a 和 $b 的和。 |
$a - $b | 減法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的積。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的余數。 |
基本的賦值運算符是“=”。一開(kāi)始可能會(huì )以為它是“等于”,其實(shí)不是的。它實(shí)際上意味著(zhù)把右邊表達式的值賦給左邊的運算數。
<?php
$a = ($b = 4) + 5; //$a現在成了9,而$b成了4。
?>
在基本賦值運算符之外,還有適合于所有二元算術(shù),數組集合和字符串運算符的“組合運算符”,這樣可以在一個(gè)表達式中使用它的值并把表達式的結果賦給它,例如:
<?php
$a = 3;
$a += 5; //結果是8,和$a = $a + 5相同
$b = "Hello ";
$b .= "There!"; //結果是:Hello There!
?>
位運算符允許對整型數中指定的位進(jìn)行置位。如果左右參數都是字符串,則位運算符將操作字符的 ASCII 值。
例子 | 名稱(chēng) | 結果 |
---|---|---|
$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 中的位向左移動(dòng) $b 次(每一次移動(dòng)都表示“乘以 2”)。 |
$a >> $b | Shift right(右移) | 將 $a 中的位向右移動(dòng) $b 次(每一次移動(dòng)都表示“除以 2”)。 |
比較運算符,如同它們名稱(chēng)所暗示的,允許對兩個(gè)值進(jìn)行比較。
例子 | 名稱(chēng) | 結果 |
---|---|---|
$a == $b | 等于 | TRUE,如果 $a 等于 $b。 |
$a === $b | 全等 | TRUE,如果 $a 等于 $b,并且它們的類(lèi)型也相同。(PHP 4 引進(jìn)) |
$a != $b | 不等 | TRUE,如果 $a 不等于 $b。 |
$a <> $b | 不等 | TRUE,如果 $a 不等于 $b。 |
$a !== $b | 非全等 | TRUE,如果 $a 不等于 $b,或者它們的類(lèi)型不同。(PHP 4 引進(jìn)) |
$a < $b | 小與 | TRUE,如果 $a 嚴格小于 $b。 |
$a > $b | 大于 | TRUE,如果 $a 嚴格 $b。 |
$a <= $b | 小于等于 | TRUE,如果 $a 小于或者等于 $b。 |
$a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b。 |
另一個(gè)條件運算符是“?:”(或三元)運算符 。
<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>
表達式 (expr1) ? (expr2) : (expr3) 在 expr1 求值為 TRUE 時(shí)的值為 expr2,在 expr1 求值為 FALSE 時(shí)的值為 expr3。
遞增/遞減運算符不影響布爾值。遞減 NULL 值也沒(méi)有效果,但是遞增 NULL 的結果是 1。
例子 | 名稱(chēng) | 效果 |
---|---|---|
++$a | 前加 | $a 的值加一,然后返回 $a。 |
$a++ | 后加 | 返回 $a,然后將 $a 的值加一。 |
--$a | 前減 | $a 的值減一, 然后返回 $a。 |
$a-- | 后減 | 返回 $a,然后將 $a 的值減一。 |
例子 | 名稱(chēng) | 結果 |
---|---|---|
$a and $b | And(邏輯與) | TRUE,如果 $a 與 $b 都為 TRUE。 |
$a or $b | Or(邏輯或) | TRUE,如果 $a 或 $b 任一為 TRUE。 |
$a xor $b | Xor(邏輯異或) | TRUE,如果 $a 或 $b 任一為 TRUE,但不同時(shí)是。 |
! $a | Not(邏輯非) | TRUE,如果 $a 不為 TRUE。 |
$a && $b | And(邏輯與) | TRUE,如果 $a 與 $b 都為 TRUE。 |
$a || $b | Or(邏輯或) | TRUE,如果 $a 或 $b 任一為 TRUE。 |
有兩個(gè)字符串運算符。第一個(gè)是連接運算符(“.”),它返回其左右參數連接后的字符串。第二個(gè)是連接賦值運算符(“.=”),它將右邊參數附加到左邊的參數后。
<?php
$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"
$a = "Hello ";
$a .= "World!"; // now $a contains "Hello World!"
?>
例子 | 名稱(chēng) | 結果 |
---|---|---|
$a + $b | 聯(lián)合 | $a 和 $b 的聯(lián)合。 |
$a == $b | 相等 | 如果 $a 和 $b 具有相同的鍵/值對則為 TRUE。 |
$a === $b | 全等 | 如果 $a 和 $b 具有相同的鍵/值對并且順序和類(lèi)型都相同則為 TRUE。 |
$a != $b | 不等 | 如果 $a 不等于 $b 則為 TRUE。 |
$a <> $b | 不等 | 如果 $a 不等于 $b 則為 TRUE。 |
$a !== $b | 不全等 | 如果 $a 不全等于 $b 則為 TRUE。 |
本文版權所有,轉載須注明:來(lái)源 http://m.cheanjie.com/qvdv-oop-641.html