【发布时间】:2013-06-28 07:37:56
【问题描述】:
在 php 中,您可以使用嵌套 If 结构,或者您可以使用 && 方法组合条件...在性能/效率方面是否有任何已知差异? (是否已知/确定速度更快,或者资源密集度更低等?)
嵌套:
if ($X == $Y) {
if ($N >= $P) {
if ($tt != true) {
// do something
}
}
}
或与AND结合:
if ($X == $Y && $N >= $P && $tt != true) {
// do something
}
我知道这似乎与
PHP Nested Ifs vs Single If with Multiple Conditions
的重复
但那是因为它没有得到真正的回答(而是人们与 Java 等事物相关联)。
所以请不要将此标记为欺骗,或链接到非 PHP 问题的答案等。
【问题讨论】:
-
顺便说一句,if 语句本身永远不会导致性能问题,因此请注意可读性。
-
您最好不要担心算法的运行时复杂性和 SQL 查询/数据库处理。这些将始终支配您的运行时间,使如此小的差异(如果存在)可以忽略不计。
-
你痴迷于性能,这会伤害你。
-
@theclueless1:您被严重误导了,没有比您给出的
for示例更好的证明($i = 0显然只执行一次,否则循环怎么可能工作?)。询问任何有经验的开发人员,他们会告诉您在尝试优化性能之前(和之后!)始终配置,原因有很多(您可以谷歌)。这正是您不在这里所做的。你给出的球场(1/100 秒,0.5 秒)远非现实; 1/10000000 秒将接近。我赞赏你的动机,但你的直觉还没有很好地发展。 -
@theclueless1:他们建议从循环的条件部分中取出任何不必要的计算,这是正确的。但这是一个完全不同的故事:这些计算具有未知的复杂性,并且执行它们可能需要比循环体本身更长的时间。在这里,我们谈论的是一些 CPU 指令(即使是这样;取决于编译器可以生成相同代码的语言),这不仅是一个已知的、微乎其微的数量,而且不一定在循环中。这就是我之前说“痴迷”的原因。
标签: php performance if-statement