PHP高效率写法
1.尽量静态化;
2.echo的效率高于print,因为echo没有返回值,print返回一个整型;
3.在循环之前设置循环的最大次数,而非在在循环中;
4.销毁变量去释放内存,特别是大的数组;
5.避免使用像__get, __set, _autoload等魔术方法;
6.requiere_once()比较耗资源;
7.在includes和requires中使用绝对路径。
8.如果你需要得到脚本执行时的时间,$SERVER['REQUSET_TIME']优于time();
9.能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式; 因为其效率高于正则;
10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;
11.参数为字符串;
12.最好不用@,用@掩盖错误会降低脚本运行速度;
13.$row['id']比$row[id]速度快7倍;
14.在循环里别用函数;
16.在类的方法里建立局部变量速度最快,几乎和在方法里调用局部变量一样快;
17.建立一个全局变量要比局部变量要慢2倍;
18.建立一个对象属性(类里面的变量)例如($this->prop++)比局部变量要慢3倍;
19.建立一个未声明的局部变量要比一个已经定义过的局部变量慢9-10倍;
20.声明一个未被任何一个函数使用过的全局变量也会使性能降低(和声明相同数量的局部变量一样)。
21.方法的性能和在一个类里面定义的方法的数目没有关系;
22.在子类里方法的性能优于在基类中;
23.只调用一个参数并且函数体为空的函数运行花费的时间等于7-8次$localvar++运算,而一个类似的方法(类里的函数)运行等于大约15次$localvar++运算;
24 用单引号代替双引号来包含字符串,这样做会更快一些。
25.当echo字符串时用逗号代替点连接符更快些。
26.Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。
28.尽量使用缓存,建议用memcached。
29.使用ip2long()和long2ip()函数把IP地址转成整型存放进数据库而非字符型。
30.使用checkdnsrr()通过域名存在性来确认部分email地址的有效性.
31.使用mysql*的改良函数mysqli*;
32.试着喜欢使用三元运算符(?:);
33.是否需要PEAR;
35.使用error_reporting(0)函数来预防潜在的敏感信息显示给用户。
36.使用 gzcompress() 和gzuncompress()对容量大的字符串进行压缩(解压)在存进(取出)数据库时。
37.通过参数变量地址得引用来使一个函数有多个返回值。
- 完全理解魔术引用和SQL注入的危险。
39.某些地方使用isset代替strlen;
40.使用++$i递增; - 不要随便就复制变量;
41.使用选择分支语句;
42.在可以用file_get_contents替代file、fopen、feof、fgets;
43.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;
44.优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);
45.尽可能的使用PHP内部函数;
46.循环内部不要声明变量,尤其是大变量:对象;
47.多维数组尽量不要循环嵌套赋值;
48.foreach效率更高,尽量用foreach代替while和for循环;
50.对global变量,应该用完就unset()掉;
51.并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。
52.不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
53.如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。
54.压缩输出:打开apache的mod_deflate模块,可以提高网页的浏览速度。
55.数据库连接当使用完毕时应关掉,不要用长连接。
56.split比exploade快;
整体结构方面优化PHP性能
1.将PHP升级到最新版
2.使用分析器
3.检错报告
4.利用PHP的扩展
5.PHP缓存,使用PHP加速器:APC
6.内存缓存
7.内容压缩
8.服务器缓存
9.数据库优化:数据库缓存等