首页 > 解决方案 > 这个 php 操作符是做什么的?

问题描述

$serial = ($_SERVER['SSL_CLIENT_M_SERIAL'] ?? false);

它看起来有点像三元组。但为此,我本来期望:

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

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

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

标签: php

解决方案


我在 php4 legacy code 中找到了该片段

这很奇怪。据我所知,它是在 PHP 7 中添加的

从文档:

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


推荐阅读