📌  相关文章
📜  ?? ' ' 在 php 中(1)

📅  最后修改于: 2023-12-03 15:13:11.538000             🧑  作者: Mango

在 PHP 中的 ?? 运算符

在 PHP 7 中,引入了一个新的运算符 ??,也称为 null 合并运算符。

作用

?? 运算符用于判断变量是否为 null,以便在变量为 null 时提供默认值,类似于三元运算符的简化版。

$foo = null;
$bar = 'Hello, world!';

// 使用三元运算符
$baz = isset($foo) ? $foo : $bar;
// $baz 的值为 'Hello, world!'

// 使用 ?? 运算符
$baz = $foo ?? $bar;
// $baz 的值为 'Hello, world!'
注意事项
  • ?? 运算符的优先级较低,必须使用括号明确优先级。
  • 如果第一个操作数不为 null,则返回第一个操作数。否则,返回第二个操作数。
  • 在使用 $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 将被设置为空数组。