上海交大教育集团
招生热线:400-656-1450

学校地址:上海市徐汇区番禺路951B号-A座1楼IT研究院

PHP代码优化的几个小技巧

  除了要学习php的基本知识,比如《为开发者准备的9个实用php代码片段》《深入探讨php类的封装与继承》《php比较运算符的详细学习》,还要了解一些代码优化上的技巧,从而帮助我们写出更加的程序。我们在编写程序时,总是想要使自己的程序占用资源小,运行速度更快,代码量更少。php 独特的语法混合了 c、java、perl 以及 php 自创新的语法,它可以比 cgi或者perl更的执行动态网页。php是将程序嵌入到html文档中去执行,执行效率比完全生成html标记的cgi要高得多。

  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 %的性能,以免除编译开销。

   后再提醒一下在代码优化的时候应该注意的事情:

  1. 短代码不等于快的代码

  很多人在写程序时希望将代码写的越简洁越好,但是越短的代码有时候反而需要更长的执行时间。

  2. 在写程序的时候更应该注重程序的扩展性,而不是追求速度。

  3. 在优化你的代码之前,先看看跟数据库有关的部分,因为大多数应用程序的瓶颈在数据库而不是代码。

  4. 微优化得不偿失

  什么叫做微优化?就像前面所说的将正则表达式部分的代码改用字符串函数代替。这样做有以下缺点:

  (1)花费时间较长

  (2)不会根本上解决性能问题

  (3)很有可能会破坏以前的代码从而产生未知的错误

  (4)付出大于回报

  这里还不得不提到一个误区,有些人为了让程序更加优化,在分析业务逻辑的时候便将优化考虑在内了,从而为了得到更优的代码而改动业务逻辑。这是十分愚蠢的想法,因为程序的目的便是为了处理现实中遇到的问题,我们不能本末倒置。


文中图片素材来源网络,如有侵权请联系删除
申请试听
为您选课


培训课时和费用


课时:16学时,45分钟/学时,8学时/天,2天

费用:3000元

培训方式

全程上机练习,理论与案例相结合,资 深顾问授课及辅导,10人以内小班

培训讲师

长期应用SolidWorks软件的资 深培训讲师,CSWP认证讲师,曾经为国内多家世界500强企业设计人员提供培训

证书

学员可以根据自己需要考取多项认证资格证书:

上海交大教育集团结业证书

培训大纲

Solidworks钣金建模

基体法兰

钣金薄片

边线法兰的设计

斜接法兰

钣金闭合角设计

如何展开钣金折弯

钣金切口设计

钣金折弯系数选项

折弯系数与折弯扣除

将零件转换成钣金

钣金主题

转换成钣金的方法

认识折弯方法

转换成钣金

打开 IGES 文件

使用切口特征

在锐角处添加折弯

钣金特征

进行更改

添加焊接的边角

展开圆锥和圆柱

工艺规划

钣金成形工具

标准工具

生成自定义成形工具

SolidWorks钣金装配图

复杂零部件的装配练习

零部件干涉检查及动态碰撞检查

在装配体下的零部件修改技术

装配体动态模拟

装配体的爆炸视图

装配体动画爆炸及动态解除爆炸

在装配体中设计单一钣金零件

SolidWorks 钣金工程图

学习生成新的工程图文件

自动生成标准三视图与等轴侧视图技巧

自动生成各种工程图视图的技巧

自动生成及注解的技巧

钣金零件图与展开图在工程图中的展示

装配体材料明细表的制作调整



申请免费试听
全国招生热线