这篇文章中的建议涵盖了大部分PHP代码性能方面的问题。如果你是做一些小网站或者小项目,那么有理由忽略这些建议,但是当你为大量用户提供长期稳定的服务的时候,就必须关注了。开发人员必须从项目一开始就考虑这些建议,它会极大的改善你的网站的性能。

  在PHP中,通常有很多的方法可以来达到相同的目的,但是开发人员通常选择他们最熟悉的用起来最舒服的一种方式,但是有些事必须注意的:

  1. echo比print要快很多。两个方法都会在页面上打印东西,不过echo不返回任何值,print会在成功或失败的时候返回0或1。
  2. include_once比include更加耗时。因为它需要去检查你要包含的class是否已经被包含进来。
  3. 对于长段落的字符串一定要使用单引号,而不是双引号。因为双引号会去搜索字符串中的变量。比如:echo This is long string.$name就比echo This is long string $name要快很多。
  4. 不要再循环中使用for($i=0;$icount($names);$i++),因为这会在每次循环的时候都会去计算数组的长度,取而代之的是使用$size=count($names);for($i=0;$i$size;$i++)。
  5. 如果能将函数定义为静态的,那么就不要定义成为成员函数,静态函数比成员函数快33%。
  6. 如果你可以不通过正则表达式就能解决问题,那么就别用正则。正则表达式比PHP原生的函数要慢一些。例如使用str_replace取代preg_replae。
  7. 尽量不要使用相对路径来包含文件。在相对路径中查找文件,会现在当前目录中查找,然后依次再查找。这样查找文件就很慢。最好是先定义WEB_ROOT这样的常量,然后使用这个常量来包含文件。
  8. 全等符号===比相等==要快。而且if(1 == 1)会返回true,if(0 == )也会返回true,而当你使用全等符号的时候if(1 ===1)和if(0===)都会返回false。所以当你在程序中需要检测一些布尔变量的时候最好使用全等符号。
  9. 最好别用简写的?而是使用?php,因为这会在你将程序部署在其他服务器的时候更加容易出问题。
  10. 最好不要使用和依赖于register_global或者magic_quote,读取和设置你的php.ini的时候也一定要小心。

这里并没有涵盖所有的优化方面,在后面的文章中讲到。请多多关注。

10条建议提高PHP代码性能的更多相关文章

  1. 提高Axure设计效率的10条建议

    http://www.woshipm.com/ucd/92153.html Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有 ...

  2. 提高Axure设计效率的10条建议 (转)

    Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有接受过任何正式培训的情况下进行使用.他们可能不知道的是他们可能没有以恰当的方 ...

  3. 如何提高Axure设计的效率 提高Axure设计效率的10条建议

    如何更有效率的使用axure,这是新手需要掌握的技能.本文作者从实际经验中归纳出来的十条建议十分值得学习,转载分享给大家: Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危 ...

  4. Java 性能优化手册 — 提高 Java 代码性能的各种技巧

    转载: Java 性能优化手册 - 提高 Java 代码性能的各种技巧 Java 6,7,8 中的 String.intern - 字符串池 这篇文章将要讨论 Java 6 中是如何实现 String ...

  5. 给备战NOIP 2014 的战友们的10条建议

    应老胡要求,要写10条建议= = begin 1. 注意文件关联 比如 halt 前要close(input); close(output); 还有就是一定要打这两句话= = 2. 快排,大家都懂得. ...

  6. <转>“人脉投资”的10条建议

    谁都知道人脉很重要,所以有些人非常勤奋的“做人脉”,他们往往会这样做—— 积极的参与各类线下活动,逢人就换名片.加微信. 见到名人或者重要人物必合影,而且他们还会掏出手机来给你看. 逢年过节,给所有他 ...

  7. 10条建议帮助你创建更好的jQuery插件

    本文总结了帮助你创建更好jQuery插件的10条建议.分享给大家供大家参考.具体说明如下: 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就 ...

  8. 将Web应用性能提高十倍的10条建议

    导读 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于 ...

  9. 将 Web 应用性能提高十倍的10条建议

    提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上 ...

随机推荐

  1. final阶段140字评论1

    1.约跑app         此次演讲增加了摄像头演示的功能,所以界面可以看得更清楚,演示的比上次完整,流畅,约跑这个项目感觉对于我们颇有使用价值,大家现在都热爱跑                 ...

  2. java多线程详解(3)-线程的互斥与同步

    前言:前一篇文章主要描述了多线程中访成员变量与局部变量问题,我们知道访成员变量有线程安全问题,在多线程程序中 我们可以通过使用synchronized关键字完成线程的同步,能够解决部分线程安全问题 在 ...

  3. CoreOS Hyper-V 安装

    CoreOS Hyper-V 安装, Install to disck 准备 安装镜像 https://coreos.com/releases/ 选择版本, 点 Browse Images, 下载以下 ...

  4. C#调用WebService获取天气信息

    概述 本文使用C#开发Winform应用程序,通过调用<WebXml/>(URL:http://www.webxml.com.cn)的WebService服务WeatherWS来获取天气预 ...

  5. 全自动ARP实时绑定BAT文件

    全自动ARP实时绑定BAT文件 说明一下,这个BVS脚本,它会每六秒钟清除一次ARP缓存.并绑定网关.真正做到了实时防护! 代码如下:请另存为.BAT文件.再运行一下,就可以了 path c:\;c: ...

  6. c#在主窗体panel 容器内嵌入另一个窗体(子窗体)的实现

    主窗体:  子窗体: 把子窗体嵌入到主窗体的panel 右侧中: 代码: { public MainForm() { InitializeComponent(); } private void Clo ...

  7. 一个暂时无法理解的bug

    BUG bug的存在是不可避免的 一个静态变量,改成绝对地址之后可以生成静态页面.但是主页有一个用了静态变量的超链接就不能用, 最后我加了一个相对地址的静态变量,可以解决这个问题.

  8. 【SQLServer】“无法对数据库’XXX’ 执行删除,因为它正用于复制”的解决方法

    警告: 一个或多个现有列的 ANSI_PADDING 设置为 "off",将以 ANSI_PADDING 为 "on" 的设置重新创建 [SQLServer]& ...

  9. RPLIDAR使用和测试

    采购的RPLIDAR刚刚到货,先拆封,内部包括雷达主机.线缆.串口USB转接.USB线.   根据说明在此处下载驱动和SDK,雷达的数据实际是通过串口输出的,所以驱动只是针对串口USB转换芯片CP21 ...

  10. extjs6环境

    安装JDK http://www.oracle.com/technetwork/java/javase/downloads/ 安装到指定路径,例如D:\Java配置环境变量 此电脑—属性—高级系统设置 ...