24条货真价实的PHP代码优化技巧


Posted in PHP onJuly 28, 2016

 PHP代码优化24条真经,希望对大家开发php项目有所帮助,具体内容如下

 1.echo比print快。

 2.使用echo的多重参数代替字符串连接。

 3.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。

 4.对global变量,应该用完就unset()掉。

 5.用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。

 6.函数代替正则表达式完成相同功能。

 7.当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。

 8.使用选择分支语句(switch case)好于使用多个if,else if语句。

 9.利用var_dump进行PHP代码调试。如果你在寻找php调试技术,我必须说var_dump应该是你要找的目标,在显示php信息方面这个命令可以满足你的所有需要,而调试代码的多数情况与得到PHP中的数值有关。

 10.在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。

 11.动辄创建全局数值是一种糟糕的做法,不过有时候实际情况的确又需要这么做。对于数据库表或数据库连接信息使用全局数值是一个不错的想法,但不要在你的PHP代码中频繁使用全局数值。另外,更好的一种做法是把你的全局变量存放在一个config.php文件中。

 12.如果你想知道脚本开始执行的时刻,使用$_SERVER[‘REQUEST_TIME']要好于time()。

 13.打开apache的mod_deflate模块。

 14.用@屏蔽错误消息的做法非常低效。

 15.尽量采用大量的PHP内置函数。

 16.递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。

 17.派生类中的方法运行起来要快于在基类中定义的同样的方法。

 18.仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)

 19.Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。

 20.正如之前提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql,学会关联表和更多高级的数据库技术。

 21.调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。

 22.当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回zval结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。

 23.并不是所有情况都必须使用面向对象开发,面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。

 24.除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php中的时间显示
Jan 18 PHP
用PHP生成html分页列表的代码
Mar 18 PHP
dedecms模版制作使用方法
Apr 03 PHP
PHP 时间日期操作实战
Aug 26 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
解析php中curl_multi的应用
Jul 17 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 #PHP
php字符串操作针对负值的判断分析
Jul 28 #PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 #PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 #PHP
apache php mysql开发环境安装教程
Jul 28 #PHP
Yii中的cookie的发送和读取
Jul 27 #PHP
Yii框架连接mongodb数据库的代码
Jul 27 #PHP
You might like
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
Js+XML 操作
2006/09/20 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
angular2使用简单介绍
2016/03/01 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python中os操作文件及文件路径实例汇总
2015/01/15 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
化妆品活动策划方案
2014/05/23 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
Go语言-为什么返回值为接口类型,却返回结构体
2021/04/24 Golang
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python