全国服务热线:400-035-8011

位置:珠海达内IT教育培训学校 > 学校动态 > 如何优化PHP程序

如何优化PHP程序

来源:珠海达内IT教育培训学校时间:2019/12/12 8:47:26

网上很多文章介绍优化php程序,是通过安装ZendOptimizer之类的加速软件实现的,但这种加速是有限的。本文主要从程序代码着手介绍一些优化手段。


如何优化PHP程序


1、程序的抽象层越多,各抽象层分离得越严格,程序效率越低。

原始的应用于网页的php程序模式莫过于脚本嵌入模式,即仅仅在一个网页中需要动态处理或显示数据的地方通过加入标识符嵌入php脚本。一般来说这是php程序员早学习的模式,它只有一个抽象层,就是网页,故本文称其为单层模式

随着网站规模逐渐增大,程序员可能会发现单层模式的程序很难维护,当想对程序修改或扩充功能时,会发现代码非常混乱,感觉无从下手。于是模板类诞生了,它使一个网页由两个文件组成:一个php程序文件,一个html模板文件

常用的模板类有PHPLib库带的Template模板类,Smarty模板类等。由于加入了额外的处理程序(模板类),程序效率下降了。你若不信可自己测试一下。其实一般情况下,不用函数(原始的编程方法)比用函数(面向过程)的效率高,而用函数的效率又比对象封装(面向对象)高。

而Smarty模板类比PHPLib的Template更复杂,我没有用过,据称有缓存机制,不知是否可以弥补其性能损耗。下面就来看看PHPLib的Template类有多少东西可以优化掉。

(1) 读入模板文件时,file函数效率低,改用get_file_content函数

(2) 匹配子模板时,正则表达式替换函数preg_replace效率低,改用str_pos函数进行定位和用str_replace函数进行替换操作。此优化手段后文会详细分析。

(3) 模板模型通用性很强,能适应各种情况,但在具体细节的处理上,通用的方法效率可能很低。 可以对模板模型作适当修改。我的做法是建一个相对通用的模板类,然后再派生出一个只适用于特定程序的模板类。在通用模板类的模板模型上可以作些优化(相对于PHPLib的Template)。

(4) 调试功能在小项目上不需要用,跟调试相关的代码全部去掉。


南京兄弟连IT培训机构


2、细节代码优化

(1) 上文模板类优化已提到的,正则表达式匹配比一般字符串匹配慢得多,尽可能用字符串匹配而不用正则表达式匹配。有时候虽然用正则表达式匹配使程序代码更简洁,而一般字符串匹配使代码更冗繁,但很多时候字符串匹配仍比正则表达式。

(2) 字符串替换函数str_replace和preg_replace都是可以接受数组参数的。有时候需要对字符串进行批量替换,则用数组参数比循环调用替换函数来得

(3) 对用于赋值的条件语句,可改用?:算符

3、面向对象、面向过程、类、函数、宏

尽管面向对象方法在程序设计中有很多优点,但一般地说,面向对象程序的执行效率往往不如面向过程好,一个显然的理由是面向对象的程序往往要频繁调用对象的方法从而使代码简洁明了,却降低了程序执行效率。

对于中小型项目,为程序效率着想,好在思想上,面向对象与面向过程兼有,在代码上,类、函数、宏搭配使用。这里提到一个可能对读者陌生的概念——宏(macro)。

在C语言中有宏,宏汇编中也有宏,但PHP中没有定义“宏”的概念。然而我们可以通过require函数和include函数实现宏的功能。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1780/news/124893/违者必究! 以上就是珠海达内IT教育培训学校 小编为您整理 如何优化PHP程序的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011