什么是“空”回报

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

标签: language-agnostic return

代码评论中的问题:

   function find($id, Application_Model $guestbook)
        {
            $result = $this->getDbTable()->find($id);
            if (0 == count($result)) {
                return;  // what is returned in functions like these?
        }

4 个答案:

答案 0 :(得分:3)

PHP documentation说“如果没有提供参数......将返回NULL。”所以这个:

return;

相当于:

return null;

答案 1 :(得分:1)

它不返回任何东西。也就是说,如果您尝试将该函数的输出分配给变量,那么该变量将为null

function iDoNothing()
{
    return;
}

$returnValue = iDoNothing();
// $returnValue is now null

答案 2 :(得分:0)

没有参数的返回语句返回null。

您可以通过创建一个简短的PHP脚本来尝试:

<?php
  echo emptyReturn();

  function emptyReturn() {
    return;
  }
?>

答案 3 :(得分:0)

它实际上依赖于语言。这里列出了其中一些(&#34;如果省略值,返回&#34;列):http://en.wikipedia.org/wiki/Return_statement

对于PHP,它只返回NULL

在像C / C ++这样的语言中,行为是未定义的。这意味着它可以返回垃圾信息。 这就是像Java这样的语言阻止你这样做的原因。如果在非void函数中尝试return;,Java将给出编译器错误。

编辑:实际上维基百科页面上并没有太多关于此的信息,所以我添加了一些内容。