省略三元运算符的第二部分

Sin*_*a V 9 php conditional-operator

给出以下表达式:

$att['menutext'] = isset($attrib_in['i_menu_text']) ? : $this->getID();
Run Code Online (Sandbox Code Playgroud)

如果它的计算结果为true,则会$att['menutext']设置为true$this->getID()

Kei*_*son 14

根据这个参考:

从PHP 5.3开始,可以省略三元运算符的中间部分.表达式expr1?:expr3如果expr1的计算结果为TRUE 则 返回expr1,否则返回expr3.


Sim*_*one 2

就和下面的一样

$att['menutext'] = isset($attrib_in['i_menu_text']) ? true : $this->getID();

  • 只是为了向路人澄清一下,三元运算符的这个快捷版本返回条件计算结果的任何内容,而不仅仅是在每个实例中返回布尔值“true”。在这种情况下,条件将评估为“true”。但如果你有 `$foo = 42 ?: false;`, `$foo` 将被分配为 `42`。 (10认同)