这个运算符怎么样'??'在PHP代码中工作。?

时间:2016-10-08 07:14:07

标签: php php-7

$array = ['name'=>'Jonh', 'lastname' => 'Doe', 'nickname' => 'JD'] ;

$person = $array['name'] ?? null ; //try to change  null to true or false<br>
    echo $person;

$person = $array['age'] ?? null;  //no Undefined index: age<br>
    echo $person;

我找不到任何关于它的文档。

3 个答案:

答案 0 :(得分:8)

新的PHP7 "null coalescing operator"

// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

<强>虽然

Ternary Operator ?:的简短形式多年来几乎相同(至少从PHP 5.3开始)

答案 1 :(得分:2)

你可以在php.net here找到关于它的文档。

修改

它的作用类似isset()?的组合 所以代码如下:

return isset($a)?$a:$b

可能是这样的:

return $a??$b

答案 2 :(得分:2)

这是一个空的合并运算符 - 请参阅this link