PHP 運算符
在 PHP 中,賦值運算符 = 用于給變量賦值。
在 PHP 中,算術(shù)運算符 + 用于把值加在一起。
PHP 算術(shù)運算符
符號 說明 舉例
+ 加號 $x + $y
- 減號 $x - $y
* 乘號,乘以 $x * $y
/ 除號,除以 $x / $y
% 取余也叫取模、求模 $x % $y
以下實例演示了使用不同算術(shù)運算符得到的不同結(jié)果:
實例
<?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+ 版本新增整除運算符 intdiv(),在這里了解一下。使用實例:
<?php var_dump(intdiv(10, 3)); ?>
以上實例會輸出:
int(3)
PHP 賦值運算符
在 PHP 中,基本的賦值運算符是 "="。它意味著左操作數(shù)被設(shè)置為右側(cè)表達(dá)式的值。也就是說,"$x = 5" 的值是 5。
符號 舉例 等價式
= $x = $y 左操作數(shù)被設(shè)置為右側(cè)表達(dá)式的值
+= $x += $y $x = $x + $y
-= $x -= $y $x = $x - $y
*= $x *= $y $x = $x * $y
/= $x /= $y $x = $x / $y
%= $x %= $y $x = $x % $y
.= $x .= $y $x = $x . $y
以下實例演示了使用不同賦值運算符得到的不同結(jié)果:
實例
<?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 ?>
嘗試一下 ?
以下實例演示了使用不同字符串運算符得到的不同結(jié)果:
實例
<?php $a = "Hello"; $b = $a . " world!"; echo $b; //輸出Hello world! $x = "Hello"; $x .= " world!"; echo $x; // 輸出Hello world! ?>
嘗試一下 ?
PHP 遞增/遞減運算符
運算符 名稱 描述
++ x 預(yù)遞增 x 加 1,然后返回 x
x ++ 后遞增 返回 x,然后 x 加 1
-- x 預(yù)遞減 x 減 1,然后返回 x
x -- 后遞減 返回 x,然后 x 減 1
以下實例演示了使用遞增/遞減運算符得到的結(jié)果:
實例
<?php $x = 10; echo ++$x; // 輸出11 $y = 10; echo $y++; // 輸出10 $z = 5; echo --$z; // 輸出4 $i = 5; echo $i--; // 輸出5 ?>
嘗試一下 ?
PHP 比較運算符
比較操作符可以讓您比較兩個值:
運算符 名稱 描述 實例
x == y 等于 如果 x 等于 y,則返回 true 5==8 返回 false
x === y 恒等于 如果 x 等于 y,且它們類型相同,則返回 true 5==="5" 返回 false
x != y 不等于 如果 x 不等于 y,則返回 true 5!=8 返回 true
x <> y 不等于 如果 x 不等于 y,則返回 true 5<>8 返回 true
x !== y 不恒等于 如果 x 不等于 y,或它們類型不相同,則返回 true 5!=="5" 返回 true
x > y 大于 如果 x 大于 y,則返回 true 5>8 返回 false
x < y 小于 如果 x 小于 y,則返回 true 5<8 返回 true
x >= y 大于等于 如果 x 大于或者等于 y,則返回 true 5>=8 返回 false
x <= y 小于等于 如果 x 小于或者等于 y,則返回 true 5<=8 返回 true
以下實例演示了使用一些比較運算符得到的不同結(jié)果:
實例
<?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 and y 邏輯與 如果 x 和 y 都為 true,則返回 true x=6 y=3 (x < 10 and y > 1) 返回 true
x or y 邏輯或 如果 x 和 y 至少有一個為 true,則返回 true x=6 y=3 (x==6 or y==5) 返回 true
x xor y 邏輯異或 如果 x 和 y 有且僅有一個為 true,則返回 true x=6 y=3 (x==6 xor y==3) 返回 false
x && y 邏輯與 如果 x 和 y 都為 true,則返回 true x=6 y=3 (x < 10 && y > 1) 返回 true
x || y 邏輯或 如果 x 和 y 至少有一個為 true,則返回 true x=6 y=3 (x==5 || y==5) 返回 false
! x 邏輯非 如果 x 不為 true,則返回 true x=6 y=3 !(x==y) 返回 true
下面舉幾個例子:
邏輯與
<?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 = false; //邏輯非,把false變?yōu)榱藅rue if(!$y){ echo '執(zhí)行了真區(qū)間'; }else{ echo '執(zhí)行了假區(qū)間'; } ?>
PHP 數(shù)組運算符
運算符 名稱 描述
x + y 集合 x 和 y 的集合
x == y 相等 如果 x 和 y 具有相同的鍵/值對,則返回 true
x === y 恒等 如果 x 和 y 具有相同的鍵/值對,且順序相同類型相同,則返回 true
x != y 不相等 如果 x 不等于 y,則返回 true
x <> y 不相等 如果 x 不等于 y,則返回 true
x !== y 不恒等 如果 x 不等于 y,則返回 true
以下實例演示了使用一些數(shù)組運算符得到的不同結(jié)果:
實例
<?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); ?>
嘗試一下 ?
三元運算符
另一個條件運算符是"?:"(或三元)運算符 。
語法格式
(expr1) ? (expr2) : (expr3)
對 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。
可以寫為:$x? 真代碼段(只能寫一句代碼): 假代碼段(只能寫一句代碼);
自 PHP 5.3 起,可以省略三元運算符中間那部分。表達(dá)式 expr1 ?: expr3 在 expr1 求值為 TRUE 時返回 expr1,否則返回 expr3。
實例
以下實例中通過判斷 $_GET 請求中含有 user 值,如果有返回 $_GET['user'],否則返回 nobody:
$_GET 變量 將會在 PHP 表單中講解 參考 PHP $_GET 變量
<?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) ?>
注意:PHP_EOL 是一個換行符,兼容更大平臺。
在 PHP7+ 版本多了一個 NULL 合并運算符,實例如下:
<?php // 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值 $username = $_GET['user'] ?? 'nobody'; // 類似的三元運算符 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; ?>
組合比較符(PHP7+)
PHP7+ 支持組合比較符,實例如下:
<?php // 整型 echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // 浮點型 echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // 字符串 echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ?>
運算符的優(yōu)先級
運算符的優(yōu)先級是一個非常復(fù)雜的規(guī)則,可以參見 http://php.net/manual/zh/language.operators.precedence.php 無需死記硬背,
我們只需要了解常用的規(guī)則即可,從高到底:
++、--(遞增遞減)
!邏輯非
乘除運算高于加減運算(先乘除后加減)
比較運算符(先計算再比較)
邏輯運算符(比較的結(jié)果做邏輯運算)