这个 php 操作符是做啥的? [复制]

Posted

技术标签:

【中文标题】这个 php 操作符是做啥的? [复制]【英文标题】:What does this php operator do? [duplicate]这个 php 操作符是做什么的? [复制] 【发布时间】:2018-10-24 05:19:07 【问题描述】:
$serial = ($_SERVER['SSL_CLIENT_M_SERIAL'] ?? false);

它看起来有点像三元组。但为此我会预料到:

$serial = $_SERVER['SSL_CLIENT_M_SERIAL'] ?  $_SERVER['SSL_CLIENT_M_SERIAL'] : false

也许它是速记,但很难找到一个链接来确认。我在 php4 遗留代码中找到了 sn-p。

(注意这是php而不是c#)

【问题讨论】:

“但很难找到要确认的链接” - 在 Google 中输入“php 双问号”会立即将您带到重复项…… 谢谢,知道要搜索什么是成功的一半。我在尝试“???”而不是'双问号 【参考方案1】:

如果

    if null

a link ps:不客气,感谢负2,很多语言都使用这个,尤其是swift

【讨论】:

说真的为什么要在 12 秒内正确回答问题的双减号? 1) 如果它是重复的,请投票关闭作为重复。 2)“如果为空怎么办”是一个糟糕的答案。 What does this php operator do? ... it's what to do if if null【参考方案2】:

我在php4遗留代码中找到了sn-p

这很奇怪。据我所知,it was added in PHP 7。

来自文档:

已添加空合并运算符 (??) 作为语法糖,用于需要将三元组与 isset() 结合使用的常见情况。如果存在且不为 NULL,则返回其第一个操作数;否则返回第二个操作数。

【讨论】:

你是对的,它是遗留代码,但这一行是较新的。谢谢。

以上是关于这个 php 操作符是做啥的? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

这个条件运算符是做啥的? [复制]

n & (n-1) 这个表达式是做啥的? [复制]

这个使用 PHP $$ 语法的循环是做啥的?

PHP+MySQL是做啥的

glStencilMask() 到底是做啥的? [复制]

我不明白这个代码行是做啥的,$this->link->query($query)? [复制]