PHP代码是用于企业网站建设、企业软件开发生物网站建设、企业营销网站建设、众筹网站平台建设等的一种程序代码。所以网站建设工程师必须对这类代码有深入的了解。同时,在编辑PHP代码时需要进行优化。下面耿真将介绍耿真总结的42条优化PHP代码的小建议,希望对大家的网站建设工作有所帮助。
1.如果一个方法可以是静态的,就对它进行静态声明。速度可以提高到4倍。
2.回声比打印快。
3.使用echo的多个参数而不是句点来连接字符串。
4.在执行for循环之前确定最大循环数,不要计算每个循环的最大值。
5.注销未使用的变量,尤其是大型数组,以便释放内存。
6.尽量避免使用__get,__set和__autoload。
7.require_once()很贵。
8.包含文件时使用完整路径将减少解析操作系统路径所需的时间。
9.如果想知道脚本开始执行的时间,用$ _ server ['request _ time']比time()好。
10、用函数代替正则表达式来完成同样的功能。
11.str_replace函数比preg_replace函数快,但是strtr函数的效率是str_replace函数的四倍。
12.如果一个字符串替换函数可以接受数组或者字符作为参数,并且参数的长度不是太长,那么可以考虑多写一个替换代码,让每个pass参数都是一个字符,而不是只写一行代码接受数组作为查询和替换参数。
13.使用select分支语句比使用多个if和else if语句要好。
14.用@屏蔽错误消息是非常低效的。
15.打开apache的mod_deflate模块。
16、使用时应关闭数据库连接。
17.$ row ['id']的效率是$row[id]的7倍。
18.错误消息代价很高。
19.尽量不要在for循环中使用函数,比如for($ x=0;$ x count($ array);$x)每次循环时都会调用count()函数。
20、在增加局部变量的方法中,速度最快。几乎和调用函数中的局部变量一样快。
21.增加一个全局变量比增加一个局部变量慢2倍。
22.增加一个对象属性(比如$this-prop)比增加一个局部变量慢3倍。
23.增加未定义的局部变量比增加预定义的局部变量慢9到10倍。
24、只定义一个局部变量而不在函数中调用它,也会变慢(其程度相当于增加一个局部变量)。PHP可能会检查是否有全局变量。
25.方法调用好像和类中定义的方法数量没有关系,因为我增加了10个方法(测试方法前后),但是性能没有变化。
26、派生类的方法运行起来要快于在基类中定义的同样的方法。
27、调用带有一个参数的空函数,其花费的时间相当于执行 7 至 8 次的局部变量递增操作。类似的方法调用所花费的时间接近于 15 次的局部变量递增操作。
28、用单引号代替双引号来包含字符串,这样做会更快一些。因为 PHP 会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。
29、输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。注意:只有 echo 能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说 echo 是语言结构,不是真正的函数,故把函数加上了双引号)。
30、Apache 解析一个 PHP 脚本的时间要比解析一个静态 HTML 页面慢 2 至 10 倍。尽量多用静态 HTML 页面,少用脚本。
31、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升 25% 至 100% 的性能,以免除编译开销。
32、尽量做缓存,可使用 memcached。memcached 是一款高性能的内存对象缓存系统,可用来加速动态 Web 应用程序,减轻数据库负载。对运算码 (OP code) 的缓存很有用,使得脚本不必为每个请求做重新编译。
33、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用 strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。
但是,由于 strlen() 是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP 不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用 isset() 技巧加速执行你的代码。
34、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。
后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。注意,不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提 供商(ISPs)和服务器。
35、并不是事必面向对象 (OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。
36、并非要用类实现所有的数据结构,数组也很有用。
37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
38、当你需要时,你总能把代码分解成方法。
39、尽量采用大量的 PHP 内置函数。
40、如果在代码中存在大量耗时的函数,你可以考虑用 C 扩展的方式实现它们。
41、评估检验 (profile) 你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug 调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
42、mod_zip 可作为 Apache 模块,用来即时压缩你的数据,并可让数据传输量降低 80%。