我正在编写一个函数,并想知道处理这样的返回条件是否最好(关于性能和编码实践):
public function func_1() {
if ( true == $condition) {
// Do something
return true;
} else {
return false;
}
}
或者这个:
public function func_2() {
if ( false == $condition ) return false;
// Do something
return true;
}
将一堆代码封装在if / else(func_1)中是否有好处,或者最好是先获得最快的返回(func_2)?
答案 0 :(得分:2)
任何不同的表现都会非常微小,以至于非常很难衡量。
我通常会使用第二个版本,因为如果你有额外的条件,它会避免进一步的嵌套,但是对于一个简单的if / else,为了清晰起见,保留else可能会更好。
换句话说:使用适合你的东西!
答案 1 :(得分:0)
除了负匹配或正匹配之外,两个示例都是相同的(如果为true,请执行此操作,如果为false则执行此操作)。
您的第一个示例是使用{}
围绕条件代码的正确方法。
你不想把它写成:
public function func_2() {
if ( false == $condition ) return false;
// Do something
return true;
}
稍后阅读将会变得令人困惑,如果你想将内部代码添加到if / else,它将会中断。