我最近正在查看我的一些代码,并注意到由于缺乏思想,我留下了如下结构:
$guid = empty($subscription->guid) ? : $subscription->guid;
现在,这没有做应该做的事情,而且是错误的,但是由于该属性始终处于设置状态,因此它可以正常工作,并且由于以下更改,自5.3以来没有语法错误:
从PHP 5.3开始,可以省略三元运算符的中间部分。如果expr1的计算结果为TRUE,则表达式expr1?:expr3返回expr1,否则返回expr3。
我当时还没有意识到这一变化,现在我很好奇是否应该使用它。这是ruby之类的语言所无法比拟的,您可以在其中a = b || c
获取b
或不获取c
“真实”布尔值。但是,他们为三元运算符选择的语法对我来说似乎有点不直观。我应该在生产代码中使用它吗?当我偶然看到它的时候,它肯定让我感到震惊。