3

当我在 php 中显示错误消息时,我通常会这样做,

if($query){
    // Success code
}else{
    // Error message
    $error_msg = "An error occurred.";
    return false;
}

$error_msg在前端 html 页面中回显变量。我只是想知道return false在变量之后是否真的做了任何事情,还是把它放在那里毫无意义?

我正在尝试优化我的代码,只是想确保!提前非常感谢!

4

2 回答 2

3

是的,它告诉函数停止执行,并返回一个值“false”。所以它做了一些事情。是否有用取决于您的编程。

如果在 echo 之后没有可执行行,并且函数不需要返回值,那么它实际上不会做任何有用的事情。

不过,如果确实让读者更清楚“这是一个停止/故障点”。有一天,您可能想要真正捕获它是有效还是失败-因此将其保留会更清楚。您也可以不假思索地扩展功能,并且需要重新安装返回 - 再次,将其保留会使它更容易。

相反,还有 C/Assembler 时代的旧编程风格,即所有函数只有一个入口和一个出口点来帮助垃圾收集。不是 PHP 的要求,但这种风格确实使它变得漂亮和整洁。在这种情况下,设置返回值(如果需要)并在最后返回。

所以,选择适合你风格的 - 但要提前考虑。使所有内容都保持原始和简约(即在您并不严格需要时放弃)可能并不总是最好的方法。

于 2012-09-17T04:28:43.300 回答
1

return false 的目的是让您可以轻松地测试函数以查看它是否有效 - 而无需进入任何潜在的错误消息等。

可以通过以下方式使用为失败返回 false 的函数:

if(someFunction($var))
{
    do stuff for function working...
}
else
{
    // function failed. Do other stuff.
}

一个函数在失败时返回 false 也很直观。它可以像这样进一步使用:

$foo=someFunction($var);
if($foo)
{
    again, function has worked.
}//... etc

虽然相同的函数返回函数失败,但不能以直观的方式使用。

于 2012-09-17T04:27:56.907 回答