当场景中使用的简写语法时,我正在尝试使用它,但它给了我一些奇怪的结果
($value == 'yes' ?: 'Show Text');
由于
答案 0 :(得分:6)
这是PHP 5.3中引入的binary conditional operator。 PHP的条件运算符传统上是三元运算符(接受三个操作数),但添加了二进制(接受两个操作数)形式,使得Map
和?
之间的操作数可选:
从PHP 5.3开始,可以省略三元运算符的中间部分。如果
:
评估为expr1 ?: expr3
,则表达式expr1
会返回expr1
,否则会返回TRUE
。
因此,在您的示例中,如果expr3
为$value
,则结果为TRUE(1),因为结果是第一个表达式的值('yes'
)。如果$value == 'yes'
不是$value
,则结果为'yes'
。