什么`?:`是什么意思?

时间:2013-10-16 10:26:16

标签: php ternary-operator

在在线教程中,我看到了以下代码片段:

$this->data = $data ?: \Input::all();

这是标准的三元运营商吗? $data评估为true时会发生什么?

以下代码是否与我发布的原始代码完全相同?

$this->data = $data ? null : \Input::all();

1 个答案:

答案 0 :(得分:8)

这是一个三元运算符,

的捷径
 $this->data = $data? $data : \Input::all();

来自http://php.net/manual/en/language.operators.comparison.php

  

从PHP 5.3开始,可以省略三元运算符的中间部分。

     

表达式 expr1?:expr3 如果 expr1 评估为TRUE则返回 expr1 ,否则返回 expr3