可能重复:
参考 - 这个符号在 PHP 中是什么意思?
当我使用函数时,我使用标准的返回语句。
我的意思是我通常要么返回,要么返回true
一个false
变量。不过,我目前正在关注一个教程,除了返回下面的函数之外,我对此非常了解。
我不明白如何阅读两个点的问号....
public function someFunction()
{
return null === $this->anAttribute ? null : $this->aFunction();
}
可能重复:
参考 - 这个符号在 PHP 中是什么意思?
当我使用函数时,我使用标准的返回语句。
我的意思是我通常要么返回,要么返回true
一个false
变量。不过,我目前正在关注一个教程,除了返回下面的函数之外,我对此非常了解。
我不明白如何阅读两个点的问号....
public function someFunction()
{
return null === $this->anAttribute ? null : $this->aFunction();
}
返回null
if $this->anAttribute
is null
else 返回$this->aFunction()
?:
称为三元运算符
首先写作null
是为了避免错误的分配拼写错误,比如if ($a = null)
. 如果您习惯于编写函数和常量,这将导致错误if(null = $a)
===
可以在上面使用的文章中阅读并称为Identical。$a === $b
TRUE
if$a
等于$b
,并且它们属于同一类型。
null
如果$this->anAttribute
is strict ,它将返回null
,否则,它将调用$this->aFunction()
并返回该函数的结果(如果该函数最后返回)
它是一个三元运算符。左边的东西是一个表达式(如if (...)
)。如果表达式计算结果为真,则使用下一个值,如果表达式计算结果为假,则使用最后一个值:
expression ? true : false;
在伪代码中,你可以这样写:
if expression is true:
use this
otherwise:
use this
如果在三元代码周围使用括号,通常更容易阅读(这是一件微妙的事情,但是当你看到以括号开头的 return 语句时,你知道你应该停下来正确阅读它,而不是忽略它或被难住了一会儿,然后意识到它是什么)。
return ((null === $this->anAttribute) ? null : $this->aFunction());