PHP 運(yùn)算符
在 PHP 中,賦值運(yùn)算子 = 用來為變數(shù)賦值。
在 PHP 中,算術(shù)運(yùn)算子 + 用來把值加在一起。
PHP 算術(shù)運(yùn)算子
PHP 算數(shù)運(yùn)算子
PHP 算術(shù)運(yùn)算子
PHo
##% 1#?了使用不同算術(shù)運(yùn)算子得到的不同結(jié)果:
實(shí)例
<?php $x = 10; $y = 6; echo ($x + $y); // 輸出16 echo ($x - $y); // 輸出4 echo ($x * $y); // 輸出60 echo ($x / $y); // 輸出1.6666666666667 echo ($x % $y); // 輸出4 ?>
試試看?
PHP7+ 版本新增整除運(yùn)算子?intdiv(),在這裡了解一下。使用實(shí)例:<?php var_dump(intdiv(10, 3)); ?>
以上實(shí)例會輸出:
int(3)
PHP 賦值運(yùn)算子
在PHP 中,基本的賦值運(yùn)算子是"="。它意味著左操作數(shù)被設(shè)定為右側(cè)表達(dá)式的值。也就是說,"$x = 5" 的值是 5。
符號? ? ? ? ?舉例? ? ? ? ? ? ??等價式
+= ? ? ? ? ?$x += $y ? ? ? $x = $x + $y?
-##o?y ? ? ? ?$x = $x - $y ? ?
##*= ? ? ? ? ? $x *= $y ? ? ??$x = $x *= $y ? ? ??$x 中 $x = $y ? ? ? ?$x = $x / $y ? ?%= ? ? ? ? $x %= $y ? ? ? $x = $x % $y ? ??$x . $y ? ?
以下實(shí)例示範(fàn)了使用不同賦值運(yùn)算子得到的不同結(jié)果:
實(shí)例
<?php $x = 10; echo $x; // 輸出10 $y = 20; $y += 100; echo $y; // 輸出120 $z = 50; $z -= 25; echo $z; // 輸出25 $i = 5; $i *= 6; echo $i; // 輸出30 $j = 10; $j /= 5; echo $j; // 輸出2 $k = 15; $k %= 4; echo $k; // 輸出3 ?>
嘗試?
#以下實(shí)例示範(fàn)了使用不同字串運(yùn)算子得到的不同結(jié)果:
實(shí)例
<?php $a = "Hello"; $b = $a . " world!"; echo $b; //輸出Hello world! $x = "Hello"; $x .= " world!"; echo $x; // 輸出Hello world! ?>
嘗試?
PHP 遞增/遞減運(yùn)算符
運(yùn)算子1,然後返回x ? ?x ++ ? ? ? ? ? ?後增加? ? ? ? ? 返回x,然後x x 減1,然後回x ? ?
#x -- ? ? ? ? ? ? ?後遞減? ? ? ? ? 回復(fù)x,然後x 減1 ? ?
下列實(shí)例示範(fàn)了使用遞增運(yùn)算子所嘗試的結(jié)果:#rr#re#re##re##re##re#一下?
運(yùn)算子? ? ? ? ? ??
名稱? ? ? ? ? ? ?
#說明? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?
實(shí)例
##x == y ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5= =8 回傳false ? ?
x === y ? ? ? ? ?恆等於? ? ? ? ? x 等於y,且它們類型相同,則回復(fù)? ?x != y ? ? ? ? ? ? ?不等於? ? ? ? ? 若x 不等於y,則回傳true ? ? ? ? ? ? ??? ?5!=8 回傳true ? ?
x <> y ? ? ? ? ? ?不等於? ? ? ? ? ?如果x 不等於y,則回復(fù)true ? ? ? ? ?? ?? ? ? ?5<>8 回傳true ? ?
x !== y ? ? ? ? ? 不恆定等於? ? ? ? 若x 不等於y,或它們類型不相同,則回傳true ? ? ? ? ? ? ? ? ?5!=="5" 回傳true ? ?
##x > y ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?若x 小於y,則回傳true ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? 大於等於? ? ? ?若x 大於或等於y,則回傳true ? ? ? ? ? ? ? ?如果x 大於或等於y,則回傳true ?;= y ? ? ? ? ? ? 小於等於? ? ? ?若x 小於或等於y,則回傳true ? ? ? ? ? ? ? ? ?##以下實(shí)例示範(fàn)了使用一些比較運(yùn)算子得到的不同結(jié)果:實(shí)例<?php $x = 10; echo ++$x; // 輸出11 $y = 10; echo $y++; // 輸出10 $z = 5; echo --$z; // 輸出4 $i = 5; echo $i--; // 輸出5 ?>試試看?
PHP 邏輯運(yùn)算子
運(yùn)算? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?之後配備作用
##實(shí)例x and y ? ? ? ? 邏輯與? ? ? ? ? ? ? x 與y 皆為true,則回傳true ? ? ? ? ? ? ? c?10 and y > 1 ) 回傳true ? ?x or y ? ? ? ? ? ?
x or y ? ? ? ? ? ?x or y ? ? ? ? ? ?
x or y ? ? ? ? ? ?時或? ? ? ? ? ? ?? ?x xor y ? ? ? ? ?邏輯異或? ? ? ? ? ? ? ?邏輯異或? ? ? ? ? ? 中點(diǎn)和y 且只有一個為true,則傳回true ? ? ? x=6?y=3 ??(x==6) x??#x && y ? ? ? ? 邏輯與? ? ? ? ? ? ? 如果x 與y 皆為true,則回傳true ? ? ? ? ? ? ?? ?true ? ?x || y ? ? ? ? ? ? 邏輯或? ? ? ? ? ? ? 若x且y 至少有一個為true,則回傳true ? ? ? ? ? x=6 ??y=3 ?(x==5 || y==5) 回傳false ? ?! x ??true,則回傳true x=6 ??y=3 ?!(x==y) 回傳true ? ?下面舉幾個例子:邏輯與<?php $x = 100; $y = "100"; var_dump($x == $y); echo "<br>"; var_dump($x === $y); echo "<br>"; var_dump($x != $y); echo "<br>"; var_dump($x !== $y); echo "<br>"; $a = 50; $b = 90; var_dump($a > $b); echo "<br>"; var_dump($a < $b); ?>邏輯或
<?php $x = true; $y = false; //邏輯與(并且),要求兩個都為true才執(zhí)行真區(qū)間,所以代碼中執(zhí)行假區(qū)間 if($x && $y){ echo '執(zhí)行了真區(qū)間'; }else{ echo '執(zhí)行了假區(qū)間'; } ?>邏輯非
<?php $x = true; $y = false; //邏輯或,有一個為真則為真 if($x || $y){ echo '執(zhí)行了真區(qū)間'; }else{ echo '執(zhí)行了假區(qū)間'; } ?>
PHP 陣列運(yùn)算子。 #x + y ? ? ? ? ? ? 集合? ? ? ? ? ? ? x 與y 的集合? ?
?鍵/值對,則傳回true ? ?
x === y ? ? ? 恆等? ? ? ? ? ? ? 如果x 與y 相同的鍵/值對,且順序相同類型相同,則回傳true ? ?
x <> y ? ? ? ? 相等? ? ? ? ? ?若x 不等於y,則回傳true ? ?
x !== y ?? 則為 如果為 如果無恆等# 則返回不恆等於x以下實(shí)例示範(fàn)了使用一些陣列運(yùn)算子得到的不同結(jié)果:
實(shí)例
<?php $y = false; //邏輯非,把false變?yōu)榱藅rue if(!$y){ echo '執(zhí)行了真區(qū)間'; }else{ echo '執(zhí)行了假區(qū)間'; } ?>
#嘗試?
三元運(yùn)算子另一個條件運(yùn)算子是"?:"(或三元)運(yùn)算子。
語法格式
(expr1) ? (expr2) : (expr3)對expr1 求值為TRUE 時的值為 expr2,在expr1 求值為FALSE 時的值為expr3。
可以寫成:$x? 真程式碼片段(只能寫一句程式碼): 假程式碼片段(只能寫一句程式碼);
自PHP 5.3 起,可以省略三元運(yùn)算符中間那部分。表達(dá)式 expr1 ?: expr3 在 expr1 求值為 TRUE 時傳回 expr1,否則回傳 expr3。
實(shí)例
以下實(shí)例中透過判斷$_GET 請求中含有user 值,如果有傳回$_GET['user'],否則傳回nobody:
$_GET 變量將會在PHP 表單中講解參考?PHP $_GET 變數(shù)
<?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; // $x 和 $y 數(shù)組合并 var_dump($z); var_dump($x == $y); var_dump($x === $y); var_dump($x != $y); var_dump($x <> $y); var_dump($x !== $y); ?>
注意:PHP_EOL 是一個換行符,相容於更大平臺。
在PHP7+ 版本多了一個NULL 合併運(yùn)算符,實(shí)例如下:
<?php $test = 'php中文網(wǎng)'; //普通寫法 $username = isset($test) ? $test : 'nobody'; echo $username, PHP_EOL; //輸出 php中文網(wǎng) // PHP 5.3+ 版本寫法 $username = $test ?: 'nobody'; echo $username, PHP_EOL; //輸出 php中文網(wǎng) ?>
組合比較符(PHP7+)
PHP7+ 支援組合比較符,實(shí)例如下:
<?php // 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值 $username = $_GET['user'] ?? 'nobody'; // 類似的三元運(yùn)算符 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; ?>
運(yùn)算子的優(yōu)先權(quán)
運(yùn)算子的優(yōu)先權(quán)是一個非常複雜的規(guī)則,可以參考http://php.net/manual/zh/language.operators.precedence.php 無需死記硬背,
我們只需要了解常用的規(guī)則即可,從高到底:
++、--(遞增遞減)
!邏輯非
乘除運(yùn)算高於加減運(yùn)算(先乘除後加減)
#比較運(yùn)算子(先計算再比較)
邏輯運(yùn)算子(比較的結(jié)果做邏輯運(yùn)算)