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中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php代码书写习惯优化小结
Jun 20 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
推荐十款免费 WordPress 插件
Mar 24 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
Laravel实现表单提交
May 07 PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
Swoole扩展的6种模式深入详解
Mar 04 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/10/09 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
js模拟类继承小例子
2010/07/17 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
基于python实现聊天室程序
2018/07/27 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
Python tkinter三种布局实例详解
2020/01/06 Python
简单了解django文件下载方式
2020/02/10 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
法学院毕业生求职信
2014/06/25 职场文书
班子四风对照检查材料
2014/08/21 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
招商引资工作汇报
2014/10/28 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技