应该使用什么?这个,没有其他:
function($condition) {
if($condition) {
return true;
}
return false;
}
或者这个,与其他:
function($condition) {
if($condition) {
return true;
} else {
return false;
}
}
潜在的缺点是什么?
注意:我知道这个例子的正确解决方案是
function($condition) {
return (boolean)$condition;
}
我喜欢这种方法:
function($condition) {
$retValue = false;
if($condition) {
$retValue = true;
}
return $retValue;
}
这样你就知道这个函数将返回到哪里(总是在最后),这对以后的分析很有好处。您可以设置一个默认值,并且只有在条件正确的情况下才能更改它。
有了else,可读性更好。但是,当函数被返回函数终止时,这两个函数都在执行相同的操作。我发现使用else也更安全,如果在某些情况下你可以忘记使用return函数,然后再返回false。
我也会使用else,原因如下:
- 您的代码可读性更好
- 在复杂的代码中,就像在其他if/else中使用if/elses一样,调试会容易得多
在某些情况下,可以通过设置"else"来提高可读性。下面两个例子是等价的。第二个生成的代码更少,尽管只有当我们在该块中返回值而不进行复杂计算时,它才适用,但同样,我们可以利用函数使其可用。
function($a, $b) {
if($a) {
if($a > $b) {
return true;
} else {
return false;
}
} else {
return false;
}
}
function($a, $b) {
if($a) {
if($a > $b) {
return true;
}
}
return false;
}
注意:如果不谈论具有更复杂条件假设的一般情况,这个应该折叠为:
function($a, $b) {
return ($a and $a > $b);
}
在第一个语句中,将返回true和false,因为当if语句完成时,它将执行下一件事,返回false。在第二个例子中,将根据条件返回一个true或false。第一种方法的缺点是返回true和false,这可能会混淆只要求一个参数而接收两个参数的函数。这是假设您将其包含在一个更大的函数中。我不知道你为什么要用第一个。希望这能有所帮助!