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 相关文章推荐
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
PHP处理excel cvs表格的方法实例介绍
May 13 PHP
php反射应用示例
Feb 25 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 PHP
PHP底层运行机制与工作原理详解
Jul 31 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提交form表单
2015/07/01 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
python读写LMDB文件的方法
2018/07/02 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
python里dict变成list实例方法
2019/06/26 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python 下划线的不同用法
2020/10/24 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
WiFi云数码相框:Nixplay
2018/07/05 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
申请任职学生会干部自荐书范文
2014/02/13 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
群众路线党课主持词
2014/04/01 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
2015年派出所工作总结
2015/04/24 职场文书
2016新年晚会开场白
2015/12/03 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
Redis基本数据类型Set常用操作命令
2022/06/01 Redis