这个符号是什么?:在PHP中是什么意思?

Sta*_*umo 0 php syntax

在场景中使用速记语法时,我正在尝试使用它,但是它给了我一些奇怪的结果

($value == 'yes' ?: 'Show Text');
Run Code Online (Sandbox Code Playgroud)

谢谢

T.J*_*der 6

它是PHP 5.3中引入的二进制条件运算符。PHP的条件运算符传统上是三元运算符(接受三个操作数),但是添加了二进制(接受两个操作数)形式,使得操作数介于?和之间:

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

因此,在您的示例中,如果$value'yes',则结果为TRUE(1),因为结果是第一个表达式的值($value == 'yes')。如果$value不是'yes',则结果为'Show Text'