2012-09-17 40 views
3

当我显示在PHP的错误消息,我通常像这样做,在php中,“返回false”在echo语句之后做了什么?

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

和余回声在前端html页面$error_msg变量。 我只是想知道变量后面的return false实际上是否做了什么,或者它只是毫无意义地放在那里?

我想优化我的代码,只是想确保!提前感谢!

+1

取决于调用者的期望。但应该在可能的情况下使用例外。 –

回答

3

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

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

如果确实让读者更清楚“这是一个停止/失败点”,但是。有一天,如果它真的有效或者失败了,你可能会想要实际陷入困境 - 所以把它放在更清晰的地方。您还可以扩展该功能,而不用考虑并且需要对收益进行复制 - 再次,让它更容易。

反过来说,也有C/Assembler日子里的旧编程风格,你只有一个入口和一个出口点来帮助垃圾收集。对于PHP来说不是必需的,但是这种风格确实使它更加美观和整洁。在这种情况下,设置返回值(如果需要)并在最后返回。

所以,去适合你的风格 - 但提前思考。把所有东西都做成原始的和毫不含糊的(即不必严格要求就行),并不总是最好的办法。

1

返回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 

而同样的函数返回的功能出现故障不能在TIS直观的方式使用。

相关问题