PHP 7 - 空合并运算符


PHP 7 中引入了一项新功能:空合并运算符 (??) 。与isset()函数配合使用,代替三元运算。Null合并运算符返回其第一个操作数(如果存在且不为 NULL)否则返回第二个操作数。

例子

<?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