PHP7空合并运算符如何使用

由 Carrie 创建,Loen 最后一次修改 2017-10-27

在这里,你可以了解更多有关 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


以上内容是否对您有帮助:

二维码
建议反馈
二维码