关于PHP函数,如果你不需要函数来返回BOOLEAN或STRING,那么在条件失败时声明return
之间是否有区别,而不是让函数自动返回?
例如,
之间是否存在内部差异:
function check() {
if( 5 > $v ) {
die('yes');
}
}
function check() {
if( 5 > $v ) {
die('yes');
}
else {
return;
}
}
显然,他们出现在“IF”条件失败时做同样的事情,但在内部,为了记忆,安全性,可用性或整体性,它比另一个更好最佳实践?
答案 0 :(得分:10)
在内存或安全性方面,这些陈述没有有效的,真实的区别。没有,nada,zip,零。它们完全相同。保存附加操作码所需的几个字节是无关紧要的,如果您关心解析,标记和解释操作码所花费的时间,那么您正在参与微优化。
就“可用性”而言,前者更为明显。从else
返回愚蠢。如果我在实时代码中看到这一点,我会假设写这篇文章的人在这样做时会分心并清理它。
答案 1 :(得分:1)
在第二个示例中返回什么都不做,而不是增加解析器和编译器工作,让读者混淆它的规则,在代码中添加不必要的行并增加应用程序大小总计,最后它没有任何价值!
答案 2 :(得分:0)
我更喜欢第一个。它的装配线较少,因此效率稍高(二进制大小而非速度)。无论函数是什么,所有函数都在函数完成时定义一个返回地址,因此添加一个额外的返回只会使它添加一条额外的指令。
我发现它更具可读性和更常见。
答案 3 :(得分:0)
我认为前者更容易读取而后者只会给预处理器增加更多开销(并且膨胀到文件大小)。然而,它也清楚地表明该函数没有返回任何特定的东西(尽管函数名称或注释可以比逻辑分支更容易实现此目的。
我意识到并欣赏这些例子,但我会坚持简洁而简洁。
[/ IMHO]