1语句的优化
1.1 循环语句的优化
尽量减少循环中循环条件判断语句中的计算,例如:
$max = sizeof($myArray);
for ($i =0; $i < $max ; $i++)
{
echo '<!--' . $myArray[$i] . ' --> ';
}
比
for ($i =0; $i < sizeof($myArray); $i++)
{
echo '<!--' . $myArray[$i] . ' --> ';
}
更高效
使用反向的顺序进行迭代,例如:
for ($i=$Array->mLength-1;$i>=0;$i--)
{
//do some thing
}
比
for ($i=0;$i<$Array->mLength;$i++)
{
//do some thing
}
更高效
使用do…while循环来代替while循环可以减少执行时间,提高效率例如:
$i=0
do {
//do some thing
$i++;
} While($i<$Array-> mLength)
比
$i=0
While($i<$Array-> mLength)
{
//do some thing
$i++;
}
更高效
用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环,而且不需要调用reset函数。两种遍历方法如下:
foreach ($arr as $key => $value)
{
echo "Key: $key; Value: $value<br>n";
}
比
reset ($arr);
while (list($key, $value) = each ($arr))
{
echo "Key: $key; Value: $value<br>n";
}
更高效
1.2 条件语句的优化
使用if语句和多个else语句的时候,一定要把最有可能的情况放在第一个,然后是第二可能出现的情况,如此排列
超过两种情况时,最好使用switch语句
总是将恒量放在等号/不等号的左边,例如:
if ( 6 == $errorNum ) ...
在循环中判断时,数值判断使用等于要比恒等高效,例如:
$a=2;$b=2;
if($a==$b)$c=$a;
比
if($a===$b)$c=$a;
高效
1.3 赋值语句的优化
必须将a=a+1写为a++; a=a+b写为a+=b
必须将a=a-1写为a--; a=a-b写为a-=b
2 变量的优化
需要维护函数调用之间的变量值, 使用 static 关键字是一个很好的解决方案,例如:
计数用户定义的函数:
function Func_Count()
{
static $count = 0;
return $count++;
}
刚好在脚本完成之前通过调用 Func_Count() 来收集变量中的返回值,这种方法是有效的。令人吃惊的是,$count 没有复位为零;初始化静态变量的行只执行了一次。
3 函数和方法的优化
函数或者方法的参数应该在三个或三个以内,使用大量参数的复杂函数应该被拆分成多个更简单的函数或者方法
用函数需要处理的所有数据一次性调用函数,始终优于多次调用函数,并以增量的方式为其提供数据
如果希望直接改变参数,而且希望修改能够保留,使用引用,而且使用引用传递比传值传递更高效
当有几个功能相同的函数时,将它们合并成一个函数,使用不同的参数得到不同的结果