首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个更快?if() function() OR function(){ if() }?

哪个更快?if() function() OR function(){ if() }?
EN

Stack Overflow用户
提问于 2011-09-06 06:21:33
回答 3查看 147关注 0票数 1

假设你有一个在一个条件下做事情的函数,例如。如果数组不为空。

$array为空的情况下,会不会更快:

代码语言:javascript
复制
function dostuff($array){
    // stuff
}

if(!empty($array)) dostuff($array);

或者:

代码语言:javascript
复制
function dostuff($array){
    if(!empty($array)){
        // stuff
    }
}

dostuff($array);

我知道,“你在这里谈论毫秒”,但我只是好奇,无论如何我都会“写出对我最有意义的代码”;)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-06 06:23:17

第一种更快,因为调用函数时会有开销(或者更确切地说,你把检查放得更早),但实际上,永远不要想着这一点,除非你在循环中做了10.000次……但是,如果函数如此简单,实际上会显着提高性能,那么您应该将其内联。

票数 3
EN

Stack Overflow用户

发布于 2011-09-06 06:25:47

我不知道PHP是否有运行时堆栈,但如果它有,每当调用一个函数时,在该例程期间存储的所有变量都会被抛到该堆栈上,然后在函数终止时检索。如果只需要在If语句的计算结果为true时执行该调用,那么就节省了很少的时间。

也就是说,时间太短了,很可能没有理由担心它。将if语句放在更有意义的地方。

票数 0
EN

Stack Overflow用户

发布于 2011-09-06 06:25:48

如果您使用profiler to actually check,您会发现对于单个调用几乎无法测量,但是避免可能冗余的函数调用会更快一些。

我建议您在这里考虑可读性。如果你可以选择避免检查(这个功能是自主的),那么就去做吧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7313205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档