随着新版PHP 7的发布,推出了新功能。这些新功能中有一个我不熟悉的操作员。 Null coalesce operator
。
这个运算符是什么以及什么是好的用例?
答案 0 :(得分:4)
您可以使用它来初始化一个可能为null的变量
?? operator被称为null-coalescing运算符。它返回 如果操作数不为空,则为左操作数;否则它返回 右手操作。
来源:https://msdn.microsoft.com/nl-nl/library/ms173224.aspx
(不依赖于语言)
用例
你可以写
$rabbits;
$rabbits = count($somearray);
if ($rabbits == null) {
$rabbits = 0;
}
您可以使用较短的符号
$rabbits = $rabbits ?? 0;
答案 1 :(得分:1)
根据PHP手册:
对于需要与isset()一起使用三元组的常见情况,已添加null coalesce运算符(??)作为语法糖。它返回第一个操作数(如果存在且不为NULL);否则它返回第二个操作数。
// 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';
// Coalesces can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
答案 2 :(得分:0)
$username = $_GET['user'] ?? 'nobody';
与
相同 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
??是三元速记