整理了一些php优化方面的东西:
1. 静态方法比普通方法快;
单纯方法调用普通方法比静态方法快,但调用普通方法之前需要new操作,两步操作导致调用普通方法比调用静态方法慢
2. 尽量减少方法调用,特别是只有一两句而且还频繁调用的方法。
一些减少方法调用的小技巧:
time() -> $_SERVER[REQUEST_TIME]
phpversion() -> PHP_VERSION
get_class() -> __CLASS__
is_null() -> NULL ===
strlen($str)> 5 –> isset($str{5})
print()-> echo
3. 使用include代替include_once,require一样;
4. @效率低下;
5. 减少内存使用,避免没必要的临时变量,变量使用完要unset;
6. preg系列函数性能低,比如str_replace比preg_replace效率快;
7. $array['foo']比$array[foo]快7倍,常量会生成一个临时变量;
8. 双引号性能比单引号差,双引号会搜寻变量和转义字符,单引号不会;
9. 在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替;
虽然count,strlen不会进行遍历,但毕竟是一次函数调用
10. include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少;
11. 使用选择分支语句(译注:即switch case)好于使用多个if,else if语句;
12. 使用引用,减少copy开销;
13. 在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当;
14. 递增一个全局变量要比递增一个局部变量慢;
15. 递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢,也要比递增全局变量慢;
16. 递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍;
17. 派生类中的方法运行起来要快于在基类中定义的同样的方法;
18. 当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器;
19. 尽量采用大量的PHP内置函数,内置函数比用户函数快;
20. 在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;
21. 用i+=1代替i=i+1。符合c/c++的习惯,效率还高;
22. 对global变量,应该用完就unset()掉;
23. 变量名,方法名尽量简短,提高查找性能;
24. 多使用缓存;
25. 设置超时时间;