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模板,主要想体现一下思路
Dec 25 PHP
PHP实现采集程序原理和简单示例代码
Mar 18 PHP
php 特殊字符处理函数
Sep 05 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
php创建session的方法实例详解
Jan 27 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
php 三大特点:封装,继承,多态
Feb 19 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
使用PHP开发留言板功能
Nov 19 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
用mysql内存表来代替php session的类
2009/02/01 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python自定义主从分布式架构实例分析
2016/09/19 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
python excel和yaml文件的读取封装
2021/01/12 Python
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
初中女生自我鉴定
2013/12/19 职场文书
贷款担保申请书
2014/05/20 职场文书
建筑工地文明标语
2014/10/09 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
经典爱情感言
2015/08/03 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS