PHP7空合并运算符如何使用
在这里,你可以了解更多有关 PHP7 的新特性。
在 PHP7 中,引入了一个新的功能,即空合并运算符(??)。由于在 PHP7 项目中存在大量同时使用三元表达式和 isset() 的情况,因此新增的空合并运算符可以用来取代三元运算与 isset () 函数,如果变量是存在的并且不为 null ,则空合并运算符将返回它的第一个操作数;否则将返回其第二个操作数。
在旧版的PHP中:isset($_GET[‘id']) ? $_GET[id] : err;而新版的写法为:$_GET['id'] ?? 'err';
具体的使用参考:
之前版本写法:
$info = isset($_GET['email']) ? $_GET['email'] : 'noemail';
PHP7版本的写法:
$info = $_GET['email'] ?? 'noemail';
还可以写成这种形式:
$info = $_GET['email'] ?? $_POST['email'] ?? 'noemail';
使用实例
<?php
// fetch the value of $_GET['user'] and returns 'not passed'
// if username is not passed
$username = $_GET['username'] ?? 'not passed';
print($username);
print("<br/>");
// Equivalent code using ternary operator
$username = isset($_GET['username']) ? $_GET['username'] : 'not passed';
print($username);
print("<br/>");
// Chaining ?? operation
$username = $_GET['username'] ?? $_POST['username'] ?? 'not passed';
print($username);
?>
它产生以下浏览器输出 :
not passed
not passed
not passed