0

可能重复:
参考 - 这个符号在 PHP 中是什么意思?

当我使用函数时,我使用标准的返回语句。

我的意思是我通常要么返回,要么返回true一个false变量。不过,我目前正在关注一个教程,除了返回下面的函数之外,我对此非常了解。

我不明白如何阅读两个点的问号....

public function someFunction()
{
    return null === $this->anAttribute ? null : $this->aFunction();
}
4

3 回答 3

2

返回nullif $this->anAttributeis nullelse 返回$this->aFunction()

?:称为三元运算符

首先写作null是为了避免错误的分配拼写错误,比如if ($a = null). 如果您习惯于编写函数和常量,这将导致错误if(null = $a)

===可以在上面使用的文章中阅读并称为Identical$a === $b TRUEif$a等于$b,并且它们属于同一类型。

于 2012-12-26T09:13:20.510 回答
1

null如果$this->anAttributeis strict ,它将返回null,否则,它将调用$this->aFunction()并返回该函数的结果(如果该函数最后返回)

于 2012-12-26T09:14:19.867 回答
1

它是一个三元运算符。左边的东西是一个表达式(如if (...))。如果表达式计算结果为真,则使用下一个值,如果表达式计算结果为假,则使用最后一个值:

expression ? true : false;

在伪代码中,你可以这样写:

if expression is true:
    use this
otherwise:
    use this

如果在三元代码周围使用括号,通常更容易阅读(这是一件微妙的事情,但是当你看到以括号开头的 return 语句时,你知道你应该停下来正确阅读它,而不是忽略它或被难住了一会儿,然后意识到它是什么)。

return ((null === $this->anAttribute) ? null : $this->aFunction());
于 2012-12-26T09:59:15.317 回答