PHP-单语句的花括号?哪个更快


PHP - Curly braces for single statement? Which is faster?

我有一个PHP代码,里面有很多单个IF语句。TO-DO大多是以单个分号结尾的单个语句。目前他们都有花括号。我想知道删除它们是否会影响代码的执行速度。

比较

if( $a == $b ) {
    $c++;
}

带有:

if($a == $b) $c++;

代码很大,所以我需要很长时间才能删除它们,所以我想在花几个小时之前先问一下。

答案是否定的。删除或添加它们根本不会影响代码的执行速度。一点也没有。

如果你关心性能——第一步是衡量它,那么你就可以进行优化。

如果您有性能问题,您将无法通过删除大括号来解决这些问题!

别担心,编译器会为您优化它们。为了可读性,最好保留它们。

否,但如果您想优化,请更换

$c++;

带有

++$c;

此外,根据您的场景(如果此脚本经常执行,并且不是一次性的执行性能问题),您可以使用PHP加速器,这样您就不必每次都编译脚本。(我过去使用过APC,效果很好)

请参阅以下PHP加速器列表:http://en.wikipedia.org/wiki/List_of_PHP_accelerators

两者是一样的。在这种情况下,

if( $a == $b ) {
    $c++;
}

如果If语句中包含多行代码,则必须将它们括在大括号中。否则,if语句后面的下一行将被视为if()的正文。

if( $a == $b )
    $c++;

如果在这之后再写一行,它将不在if()的范围内,这就是区别。