Avatar ·

PHP中的双问号(??)是什么意思?Null合并运算符

大家好!我是PHP新手,在别人的代码中遇到了一个奇怪的语法。代码大概是这样的: ```php $username = $_GET['user'] ?? 'гость'; ``` 我理解 `$_GET['user']` 是什么,也理解赋值是什么,但这两个问号 `??` 让我困惑。我知道单个问号 `?` 用于三元运算符,例如 `$a ? $b : $c`。但双问号 `??` 是做什么的? 我试着搜索了一下,但只找到英文的通用解释。我需要用中文理解它是如何工作的以及为什么需要它。在什么情况下使用它?能否用旧的结构绕过这个运算符?有没有什么陷阱? 我特别想知道它如何与数组和表单一起工作。我经常需要检查值是否来自POST请求,如果没有,则设置默认值。以前我写了很多带有 `isset()` 的长结构,但这个运算符能简化代码吗? 非常感谢!