PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
基础的优化方法
PHP语言以其简单易学而闻名,但一些初学者经常会写出一些性能低下的PHP代码,这会严重影响整套系统的运行效率,下面就简单介绍一下php基础教程的优化方法。
尽量采用大量的PHP内置函数;使用echo代替print,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接;不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码;在执行for循环之前确定优级大循环数,不要每循环一次都计算优级大值;注销那些不用的变量尤其是大数组,以便释放内存;并非要用类实现所有的数据结构,数组也很有用; 在--含文件时使用完整路径,解析操作系统路径所需的时间会更少; 函数代替正则表达式完成相同功能,str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍;注意代码编写的缩进;如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数; 使用选择分支语句(译注:即switch case)好于使用多个if,else if语句; 用@屏蔽错误消息的做法非常低效;打开apache的mod_deflate模块; 数据库连接当使用完毕时应关掉;错误消息代价昂贵; 尽量不要在for循环中使用函数,比如for ($x=0; $x < count($array); $x)每循环一次都会调用count()函数; 在方法中递增局部变量,速度是优级快的。几乎与在函数中调用局部变量的速度相当; 方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化;尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码(OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。
调用相关
33、 当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码;如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍;不要使用array_key_exists,用isset来判断键值是否在数组中存在;如果在项目中感觉到有可复用的部分,在写下一行代码前先看看 PEAR 中是否已经有了,这个在线资源库--含了超过 400 个可以复用的程序片段,这些程序片段可以立即用到你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR --;用 highlight_file() 来自动的打印出格式化的很漂亮的源代码