Php 条件赋值有什么不同吗?
以下两种方法之间是否存在任何性能差异(特别是速度或内存)Php 条件赋值有什么不同吗?,php,performance,conditional,Php,Performance,Conditional,以下两种方法之间是否存在任何性能差异(特别是速度或内存) $foo = false; for ($i = 0; $i < 100; $i++) { if ($i % 5 === 0) { $foo = true; } } $foo=false; 对于($i=0;$i
$foo = false;
for ($i = 0; $i < 100; $i++) {
if ($i % 5 === 0) {
$foo = true;
}
}
$foo=false;
对于($i=0;$i<100;$i++){
如果($i%5==0){
$foo=true;
}
}
vs
$foo=false;
对于($i=0;$i<100;$i++){
$foo=$i%5==0;
}
这是一个抽象的示例,但虽然我更喜欢后者更简洁的语法,但我不确定常量赋值是否会影响性能?如果有,则差异将非常小,您永远不会注意到。就选你喜欢的吧。在你有明确的理由之前不要开始微优化。此外,应用程序的其他部分很可能更为重要。不要为了一纳秒的“性能”而选择。选择哪个变体更容易被其他人阅读和理解,这是99.99999%的用例中真正重要的性能指标。我不明白为什么你不能自己对其进行基准测试并找出答案。不过,您至少需要1000000次迭代才能看到一致的差异。您将通过
++$i
而不是@DanFromGermany所说的$i++
获得更高的性能。如果您选择后者,那么至少用括号使其不那么神秘:$foo=($i%5==0)代码>顺便说一下,您的两个脚本做的不一样,它们的行为完全不同;-)第二个值每次都会覆盖该值,第一个值仅在if条件匹配的情况下才覆盖。如果条件匹配,则差异非常小,您永远不会注意到。就选你喜欢的吧。在你有明确的理由之前不要开始微优化。此外,应用程序的其他部分很可能更为重要。不要为了一纳秒的“性能”而选择。选择哪个变体更容易被其他人阅读和理解,这是99.99999%的用例中真正重要的性能指标。我不明白为什么你不能自己对其进行基准测试并找出答案。不过,您至少需要1000000次迭代才能看到一致的差异。您将通过++$i
而不是@DanFromGermany所说的$i++
获得更高的性能。如果您选择后者,那么至少用括号使其不那么神秘:$foo=($i%5==0)代码>顺便说一下,您的两个脚本做的不一样,它们的行为完全不同;-)第二个每次都覆盖该值,第一个仅在if条件匹配时覆盖。
$foo = false;
for ($i = 0; $i < 100; $i++) {
$foo = $i % 5 === 0;
}