X!==y 絕對不等於
PHP7+ 版本新增整除運算符 intdiv(),使用實例:
<?php
var_dump(intdiv(10, 3));
?>
輸出:int(3)
<?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);
?>
結果:
array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" }
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
(expr1) ? (expr2) : (expr3)
expr1 求值爲 TRUE 時的值爲 expr2,在 expr1 求值爲 FALSE 時的值爲 expr3。
自 PHP 5.3 起,可以省略三元運算符中間那部分。表達式 expr1 ?: expr3 在 expr1 求值爲 TRUE 時返回 expr1,否則返回 expr3。
<?php
$test = '菜鳥教程';
// 普通寫法
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
// PHP 5.3+ 版本寫法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>
注意:PHP_EOL 是一個換行符,兼容更大平臺。
在 PHP7+ 版本多了一個 NULL 合併運算符 ??,實例如下:
<?php
// 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 類似的三元運算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
PHP7+ 支持組合比較符(combined comparison operator)也稱之爲太空船操作符,符號爲 <=>。組合比較運算符可以輕鬆實現兩個變量的比較,當然不僅限於數值類數據的比較。
語法格式如下:
$c = $a <=> $b;
解析如下:
- 如果 $a > $b, 則 $c 的值爲 1。
- 如果 $a == $b, 則 $c 的值爲 0。
如果 $a < $b, 則 $c 的值爲 -1