📅  最后修改于: 2023-12-03 15:13:11.538000             🧑  作者: Mango
??
运算符在 PHP 7 中,引入了一个新的运算符 ??
,也称为 null 合并运算符。
??
运算符用于判断变量是否为 null,以便在变量为 null 时提供默认值,类似于三元运算符的简化版。
$foo = null;
$bar = 'Hello, world!';
// 使用三元运算符
$baz = isset($foo) ? $foo : $bar;
// $baz 的值为 'Hello, world!'
// 使用 ?? 运算符
$baz = $foo ?? $bar;
// $baz 的值为 'Hello, world!'
??
运算符的优先级较低,必须使用括号明确优先级。$a = $b ?? $c ?? $d;
这种连续的 ??
运算符时,它们被处理为从左到右的优先级,即 $a = ($b ?? ($c ?? $d));
。下面是一些使用 ??
运算符的实际示例。
// 1. 显示用户名称或“未知用户”
$username = getUsername() ?? 'Unknown User';
echo $username;
// 2. 设置默认值
$limit = $_GET['limit'] ?? 10;
echo "Limit: $limit";
// 3. 设置默认数组
$parameters = $_POST['parameters'] ?? array();
var_dump($parameters);
对于示例 1,如果 getUsername()
返回 null,则 $username
将被设置为 'Unknown User'。
对于示例 2,如果 URL 中没有 'limit' 参数,则 $limit
将被设置为 10。
对于示例 3,如果 POST 数据中没有 'parameters' 参数,则 $parameters
将被设置为空数组。