0

在这个给定的例子中;

public function something($input)
{
    if(something) //true case
       return "something";

    if(another something) //true case
       return "another something";
}

$this->something('something');

我应该return;用来确保功能在第一个TRUE案例后不会继续运行吗?喜欢;

if(something) { //true case
    return "something";
    return; //stop the execution
}

是否有必要,或者单个返回已经停止函数的执行?

4

3 回答 3

6

如果从函数内部调用,return 语句会立即结束当前函数的执行

http://php.net/return

因此,在第if一个结果为 true 的语句之后,函数结束。

但是,您的第二段代码具有令人困惑的缩进,最好写为:

if(something) { //true case
    return "something";
}
return; //stop the execution

…如果第一种情况为真或假,将返回并结束函数,因此if永远不会到达第二条语句。

另一方面,如果您有:

if(something) { //true case
    return "something";
    return; //stop the execution
}

然后return永远不会到达第二个,因为第一个会立即结束函数。

于 2013-05-31T08:11:57.107 回答
0

一旦 PHP 遇到第一个返回,它下面的代码将不会运行。

要停止所有执行(如果返回错误),将是exit;

于 2013-05-31T08:12:11.370 回答
0

在您的最后一段代码中,您可以省略最后一段,return因为它永远不会到达那里。

在第一段代码中,你绝对应该在最后加上return nullor return false,以防它不符合任何条件。

于 2013-05-31T08:12:51.200 回答