在php中编写if else的最有效方法是什么?

时间:2011-08-30 05:05:43

标签: php performance if-statement

您正在使用codeigniter构建大型应用程序。因为应用程序非常大,性能是必须的。我想优化我的if else语句。

是否有使用性能的差异 从

if(false)   and    if(0)

if(true)   and    if(1)

什么是有效的方式?

当使用逻辑运算符时,它们是优化性能的任何序列

来自if((a & b) || c)if(c || (a & b) )

什么是有效的方法?或者那两个是一样的?

if(a && b)if(a & b)

什么是有效的方法?

if(a || b) and  if(a | b)

什么是有效的方法?

if(a || b) and if((a || b))之间是否有任何性能差异 请注意,如果是另外两个括号中的第二个

请帮帮我................................... 提前谢谢。

4 个答案:

答案 0 :(得分:4)

除非您知道使用它的代码是瓶颈,否则我不会混淆0false / 1true区别。这真的是微观优化。

至于| vs ||& vs &&,请使用双字符;他们短路。至于零件的顺序,将始终评估第一个零件(如果评估了&&||,那么),但是只有第一个零件才会被评估。得出最终结果。因此,第一部分应该比第二部分更快。如果它们都同样快,那么它们处于哪个顺序并不重要。

额外的括号可能会使解析器减慢一分钟的速度,但您可以缓存字节码,因此这不是一个问题。

答案 1 :(得分:3)

这些优化都不会对您有所帮助。 PHP代码永远不会成为瓶颈,除非你运行一些严肃的数据处理应用程序,比如计算pi到一百万位。无论你的申请多大,你需要确保的是:
1)最小文件操作
2)您的大多数查询应使用索引

我的回复可能无关紧要,但只有.01%的情况才会出现

答案 2 :(得分:3)

这也被称为“微优化”,并且通常不赞成。差异几乎无法衡量。如果您可以减少50%的“计算”时间(这对于优化来说很重要),那么最终产品将完全没有区别,除非您的代码仅用于其他内容。使1个查询,文件操作甚至循环/ foreach更快一点都会产生更大的不同。写下你的ifs是为了便于阅读,而不是为了“速度”。

最后但同样重要的是:对于每次基于性能的更改,您都需要进行测量。做隔离和重复测试,找出更快的东西。

答案 3 :(得分:1)

Php花费大部分执行时间等待sql响应,所以不要专注于这些小优化,它们不会有所作为。 如果您仍有疑问,请使用microtime()监控每个步骤的执行时间。