什么是'空合并'(?)运算符用于?

随着新的PHP版本PHP 7的发布,引入了新功能。 这些新功能中有一位是我不熟悉的操作员。 Null coalesce operator

这个操作符是什么,有什么好的用例?


您可以使用它来初始化一个可能为空的变量

?? ?? 运算符称为空合并运算符。 如果操作数不为null,则返回左侧的操作数; 否则返回右手操作数。

来源:https://msdn.microsoft.com/nl-nl/library/ms173224.aspx

(不依赖于语言)

用例

你可以写

$rabbits;

$rabbits = count($somearray);

if ($rabbits == null) {
    $rabbits = 0;
}

您可以使用较短的表示法

$rabbits = $rabbits ?? 0;

根据PHP手册:

空合并运算符(??)已添加为需要与isset()一起使用三元组的常见情况下的语法糖。 它返回它的第一个操作数,如果它存在并且不是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';

$username = $_GET['user'] ?? 'nobody'; 

与...相同

$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

?? 是三元速记

链接地址: http://www.djcxy.com/p/57953.html

上一篇: What is the 'Null coalesce' (??) operator used for?

下一篇: Strange behaviour of rawurlencode() ...how to get it to work?