以前从未见过这个操作员

时间:2016-06-03 19:01:34

标签: php operators

我正在阅读laravel项目的来源,然后我找到了这一行:

$this->crawler() ?: $this->response->getContent()

?:做些什么特别的事吗?在PHP吗?

我不记得在任何其他地方看到过

1 个答案:

答案 0 :(得分:1)

三元运营商:)

如果被调用的函数返回FALSE或0以外的任何值,则左侧确定操作过程。如果为false或0,则右侧将采取的操作。

这也可以是“堆叠”来执行序列中的第一个语句,该序列导致除FALSE或0之外的任何值。例如:

echo 0 ?: 1 ?: 2 ?: 3; //1
echo 1 ?: 0 ?: 3 ?: 2; //1
echo 2 ?: 1 ?: 0 ?: 3; //2
echo 3 ?: 2 ?: 1 ?: 0; //3
echo 0 ?: 1 ?: 2 ?: 3; //1
echo 0 ?: 0 ?: 2 ?: 3; //2
echo 0 ?: 0 ?: 0 ?: 3; //3