PHP 運算符
在 PHP 中,賦值運算子 = 用來為變數賦值。
在 PHP 中,算術運算子 + 用來把值加在一起。
PHP 算術運算子
PHP 算數運算子
PHP 算術運算子
PHo
##% 1# 了使用不同算術運算子得到的不同結果:
實例
<?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 中,基本的賦值運算子是"="。它意味著左操作數被設定為右側表達式的值。也就是說,"$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
以下實例示範了使用不同賦值運算子得到的不同結果:
實例
<?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 ?>
嘗試»
#以下實例示範了使用不同字串運算子得到的不同結果:
實例
<?php $a = "Hello"; $b = $a . " world!"; echo $b; //输出Hello world! $x = "Hello"; $x .= " world!"; echo $x; // 输出Hello world! ?>
嘗試»
PHP 遞增/遞減運算符
運算子1,然後返回x x ++ 後增加 返回x,然後x x 減1,然後回x
#x -- 後遞減 回復x,然後x 減1
下列實例示範了使用遞增運算子所嘗試的結果:#rr#re#re##re##re##re#一下»
運算子
名稱
#說明
實例
##x == y 5= =8 回傳false
x === y 恆等於 x 等於y,且它們類型相同,則回復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 大於等於 若x 大於或等於y,則回傳true 如果x 大於或等於y,則回傳true ;= y 小於等於 若x 小於或等於y,則回傳true ##以下實例示範了使用一些比較運算子得到的不同結果:實例<?php $x = 10; echo ++$x; // 输出11 $y = 10; echo $y++; // 输出10 $z = 5; echo --$z; // 输出4 $i = 5; echo $i--; // 输出5 ?>試試看»
PHP 邏輯運算子
運算 之後配備作用
##實例x and y 邏輯與 x 與y 皆為true,則回傳true c 10 and y > 1 ) 回傳true x or y
x or yx or y
x or y 時或 x xor y 邏輯異或 邏輯異或 中點和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才执行真区间,所以代码中执行假区间 if($x && $y){ echo '执行了真区间'; }else{ echo '执行了假区间'; } ?>邏輯非
<?php $x = true; $y = false; //逻辑或,有一个为真则为真 if($x || $y){ echo '执行了真区间'; }else{ echo '执行了假区间'; } ?>
PHP 陣列運算子。 #x + y 集合 x 與y 的集合
鍵/值對,則傳回true
x === y 恆等 如果x 與y 相同的鍵/值對,且順序相同類型相同,則回傳true
x <> y 相等 若x 不等於y,則回傳true
x !== y 則為 如果為 如果無恆等# 則返回不恆等於x以下實例示範了使用一些陣列運算子得到的不同結果:
實例
<?php $y = false; //逻辑非,把false变为了true if(!$y){ echo '执行了真区间'; }else{ echo '执行了假区间'; } ?>
#嘗試»
三元運算子另一個條件運算子是"?:"(或三元)運算子。
語法格式
(expr1) ? (expr2) : (expr3)對expr1 求值為TRUE 時的值為 expr2,在expr1 求值為FALSE 時的值為expr3。
可以寫成:$x? 真程式碼片段(只能寫一句程式碼): 假程式碼片段(只能寫一句程式碼);
自PHP 5.3 起,可以省略三元運算符中間那部分。表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時傳回 expr1,否則回傳 expr3。
實例
以下實例中透過判斷$_GET 請求中含有user 值,如果有傳回$_GET['user'],否則傳回nobody:
$_GET 變量將會在PHP 表單中講解參考 PHP $_GET 變數
<?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; // $x 和 $y 数组合并 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 合併運算符,實例如下:
<?php $test = 'php中文网'; //普通写法 $username = isset($test) ? $test : 'nobody'; echo $username, PHP_EOL; //输出 php中文网 // PHP 5.3+ 版本写法 $username = $test ?: 'nobody'; echo $username, PHP_EOL; //输出 php中文网 ?>
組合比較符(PHP7+)
PHP7+ 支援組合比較符,實例如下:
<?php // 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值 $username = $_GET['user'] ?? 'nobody'; // 类似的三元运算符 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; ?>
運算子的優先權
運算子的優先權是一個非常複雜的規則,可以參考http://php.net/manual/zh/language.operators.precedence.php 無需死記硬背,
我們只需要了解常用的規則即可,從高到底:
++、--(遞增遞減)
!邏輯非
乘除運算高於加減運算(先乘除後加減)
#比較運算子(先計算再比較)
邏輯運算子(比較的結果做邏輯運算)