php - 这个 php 操作符是做什么的?
问题描述
$serial = ($_SERVER['SSL_CLIENT_M_SERIAL'] ?? false);
它看起来有点像三元组。但为此,我本来期望:
$serial = $_SERVER['SSL_CLIENT_M_SERIAL'] ? $_SERVER['SSL_CLIENT_M_SERIAL'] : false
也许它是速记,但很难找到一个链接来确认。我在 php4 遗留代码中找到了该片段。
(注意这是 php 而不是 c#)
解决方案
我在 php4 legacy code 中找到了该片段
这很奇怪。据我所知,它是在 PHP 7 中添加的。
从文档:
已添加空合并运算符 (??) 作为语法糖,用于需要将三元组与 isset() 结合使用的常见情况。如果存在且不为 NULL,则返回其第一个操作数;否则返回第二个操作数。