想象一下,你有一个功能可以在一种情况下完成任务,例如。如果数组不为空。
如果$array
为空,会更快吗?
function dostuff($array){
// stuff
}
if(!empty($array)) dostuff($array);
或者:
function dostuff($array){
if(!empty($array)){
// stuff
}
}
dostuff($array);
我知道,“你在这里谈论毫秒”,但我只是好奇,而且我会“编写对我来说最有意义的代码”,无论如何;)
答案 0 :(得分:3)
第一个是更快,因为在调用函数时会有开销(或者更确切地说,你先检查了一下),但实际上,除非你在循环中执行10.000次,否则永远不要考虑这个...但是你如果函数如此简单以至于它实际上会显着提高性能,那么应该内联它。
答案 1 :(得分:0)
我不知道如果PHP有一个运行时堆栈,但如果确实如此,每当调用一个函数时,该例程中存储的所有变量都会抛出到该堆栈上,然后在函数终止后检索。如果你只需要在if语句的计算结果为true时进行调用,那么这就节省了很多时间。
那就是说,这么短的时间很可能没有理由担心它。将if语句放在更合理的地方。
答案 2 :(得分:0)
如果您使用profiler to actually check,您会发现单次调用几乎无法衡量,但避免可能冗余的函数调用会更快一点。
我想建议您在此处查看可读性。如果您可以选择避免检查(该功能是自主的),那就去做吧。