如何阅读此高级退货声明?

时间:2012-12-26 09:11:42

标签: php return

  

可能重复:
  Reference - What does this symbol mean in PHP?

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

我的意思是,我通常会返回truefalse或变量。不过我目前正在学习一个教程,除了返回下面的函数之外,我很清楚。

我不知道如何阅读问号这两个点......

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

3 个答案:

答案 0 :(得分:2)

如果null$this->anAttribute,则返回null,否则返回$this->aFunction()

?:名为ternary operator

首先编写null用于避免错误的分配拼写错误,例如if ($a = null)。如果您习惯于编写函数和常量,则会导致错误if(null = $a)

===可以在上面使用的文章中阅读并称为相同$a === $b TRUE如果$a等于$b,则它们属于同一类型。

答案 1 :(得分:1)

如果null 严格 $this->anAttribute,它将返回null,否则,它将调用$this->aFunction()并返回此函数的结果(如果函数在结尾处返回)

答案 2 :(得分:1)

这是一个三元运营商。左边的东西是一个表达式(如if (...))。如果表达式的计算结果为true,则使用下一个值;如果表达式的计算结果为false,则使用最后一个值:

expression ? true : false;

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

if expression is true:
    use this
otherwise:
    use this

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

return ((null === $this->anAttribute) ? null : $this->aFunction());