作为最流行的WEB语言, PHP他的突出优点就是其速度与效率。若是遇到维护原有效率不高的脚本,或者服务器负载较大,以及网络带宽不高等多种影响系统性能的瓶颈时,就须要咱们对系统的内部环境经行调优。老杨ecshop二次开发
一:PHP脚本优化
我下面说的几条PHP脚本级优化,你能够在优化时用到它们,这些技巧并不能让PHP运行速度变的更快,而只能使代码稍稍优化一点儿。最重要的是让你了解PHP内在的运行原理。
例子一:
在程序中使用count($array)做为条件循环时的耗时操做。
$birds = array("鹦鹉","麻雀","孔雀","天鹅");
for($i = 0;$i<=count($birds);i++){
............
}
上面的代码每次处理都要执行一遍count()函数,计算数组的长度。
下面咱们重写代码
$count = count($birds);
for($i = 0;$i<=$count;i++){
............
}
例子二:
对字符操做时,检查某个字符串是否超出长度。咱们很容易的想到的是strlen()函数,可是strlen()函数在使用的时候须要经行几步的操做,如所有小写化、函数查找。
在这样的场合,咱们可使用isset()来代替,以提升代码速度。
if(strlen($var) < 5) { echo "this is test";}
重写后的代码
if(!isset($var{5})) { echo "this is test";}
调用isset()比strlen()函数要快,由于isset()是一种语法结果,而不是函数。在执行的时候不须要PHP引擎对strlen()函数进行小写换换和内部进行函数查找。
例子三:
使用递增或递减时,$i++比++$i稍慢。这点和其余的语言相比,在php中是个特例,不要在C++和java中也使用这个技巧。在php中,$i++比++$i慢的缘由是$i++进行了4次计算,而++$i
进行了3次计算。$i++是先申请一个临时变量,而后增长。++$i直接使用原来变量。
例子四
字符串的输出
echo 与 print
print要比echo稍慢一些。理由很简单,无论是否须要,print都会返回一个状态标识,而echo只是简单的输出,不作任何其余的事情。
printf() 这个函数会很慢,建议万不得已的时候不要使用。printf()是在须要进行参数格式化的状况下使用的。
例子五
require 比 require_once 快
从PHP 5.2开始 require 将会比 require_once 快,由于require不会检查所包含的函数或文件是否存在。php