假设你有一个在一个条件下做事情的函数,例如。如果数组不为空。
在$array为空的情况下,会不会更快:
function dostuff($array){
// stuff
}
if(!empty($array)) dostuff($array);或者:
function dostuff($array){
if(!empty($array)){
// stuff
}
}
dostuff($array);我知道,“你在这里谈论毫秒”,但我只是好奇,无论如何我都会“写出对我最有意义的代码”;)
发布于 2011-09-06 06:23:17
第一种更快,因为调用函数时会有开销(或者更确切地说,你把检查放得更早),但实际上,永远不要想着这一点,除非你在循环中做了10.000次……但是,如果函数如此简单,实际上会显着提高性能,那么您应该将其内联。
发布于 2011-09-06 06:25:47
我不知道PHP是否有运行时堆栈,但如果它有,每当调用一个函数时,在该例程期间存储的所有变量都会被抛到该堆栈上,然后在函数终止时检索。如果只需要在If语句的计算结果为true时执行该调用,那么就节省了很少的时间。
也就是说,时间太短了,很可能没有理由担心它。将if语句放在更有意义的地方。
发布于 2011-09-06 06:25:48
如果您使用profiler to actually check,您会发现对于单个调用几乎无法测量,但是避免可能冗余的函数调用会更快一些。
我建议您在这里考虑可读性。如果你可以选择避免检查(这个功能是自主的),那么就去做吧。
https://stackoverflow.com/questions/7313205
复制相似问题