首页 > 语言 > 关键词  > PHP代码最新资讯  > 正文

40条技巧优化php代码

2009-03-13 17:20 · 稿源:互联网

40条优化php代码的小实例

1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;

2.echo的效率高于print,因为echo没有返回值,print返回一个整型;

3.在循环之前设置循环的最大次数,而非在在循环中;

4.销毁变量去释放内存,特别是大的数组;

5.避免使用像__get, __set, __autoload等魔术方法;

6.requiere_once()比较耗资源;

7.在includes和requires中使用绝对路径,这样在分析路径花的时间更少;

8.如果你需要得sexinsex到脚本执行时的时间,$_SERVER['REQUSET_TIME']优于time();

9.能使用字符处理函数的,尽量用他们,因为效率高于正则;

10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;

11.如果一个函数既能接受数组又能接受简单字符做为参数,例如字符替换,并且参数列表不是太长,可以考虑多用一些简洁的替换语句,一次只替换一个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2;

12.用@掩盖错误会降低脚本运行速度;

13.$row['id']比$row[id]速度快7倍,建议养成数组键加引号的习惯;

14.错误信息很有用;

15.在循环里别用函数,例如For($x=0; $x < count($array); $x), count()函数在外面先计算;

16.在方法里建立局部变量速度最快,97xxoo几乎和在方法里调用局部变量一样快;

17.建立一个全局变量要比局部变量要慢2倍;

18.建立一个对象属性(类里面的变量)例如($this->prop++)比局部变量要慢3倍;

19.建立一个未声明的局部变量要比一个初始化的局部变量慢9-10倍;

20.声明一个未被任何一个函数使用过的全局变量也会使性能降低(和声明相同数量的局部变量一样),PHP可能去检查这个全局变量是否存在;

21.方法的性能和在一个类里面定义的方法的数目没有关系,因为我添加10个或多个方法到测试的类里面(这些方法在测试方法的前后)后性能没什么差异;

22.在子类里方法的性能优于在基类中;

23.只调用一个参数并且函数体为空的函数运行花费的时间等于7-8次$localvar++运算,而一个类似的方法(类里的函数)运行等于大约15次$localvar++运算;

24.Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.

25.当输出字符串时用逗号代替点分割更快些。注意:这只对echo起作用,这个函数能接受一些字符串作为参数;

26.在apache服务器里一个php脚本页面比相应的HTML静态页面生成至少要多花2-10倍的时间,建议多用些静态HTML页面和少量的脚步;

27.除非你的安装了缓存,不然你的php脚本每次被访问都需要被重编译。建议安装个php缓存程序,这样通过去除一些重复的编译来很明显的提高你20-100%的性能;

28.建议用memcached,高性能的分布式内存对象缓存系统,提高动态网络应用程序性能,减轻数据库的负担;

29.使用ip2long()和long2ip()函数把IP地址转成整型存放进数据库而非字符型。这几乎能降低1/4的存储空间。同时可以很容易对地址进行排序和快速查找;

30.使用checkdnsrr()通过域名存在性来确认部分email地址的有效性,这个内置函数能保证每一个的域名对应一个IP地址;

31.如果你在使用php5和mysql4.1以上的版本,考虑使用mysql_*的改良函数mysqli_*;

32.试着喜欢使用三元运算符(?:);

33.在你想在彻底重做你的项目前,看看PEAR有没有你需要的。PEAR是个巨大的资源库,很多php开发者都知道;

34.使用highlight_file()能自动打印一份很好格式化的页面源代码的副本;

35.使用error_reporting(0)函数来预防潜在的敏感信息显示给用户。理想的错误报告应该被完全禁用在php.ini文件里。可是如果你在用一个共享的虚拟主机,php.ini你不能修改,那么你最好添加error_reporting(0)函数,放在每个脚本文件的第一行(或用require_once()来加载)这能有效的保护敏感的SQL查询和路径在出错时不被显示;

36.使用 gzcompress() 和gzuncompress()对容量大的字符串进行压缩(解压)在存进(取出)数据库时。这种内置的函数使用gzip算法能压缩到90%;

37.通过参数变量地址得引用来使一个函数有多个返回值。你可以在变量前加个“&”来表示按地址传递而非按值传递;

38.Fully understand “magic quotes” and the dangers of SQL injection. I’m hoping that most developers reading this are already familiar with SQL injection. However, I list it here because it’s absolutely critical to understand. If you’ve never heard the term before, spend the entire rest of the day googling and reading.

39.使用strlen()因为要调用一些其他操作例如lowercase和hash表查询所以速度不是太好,我们可以用isset()来实现相似的功能,isset()速度优于strlen();

40.When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. This is something PHP specific and does not apply to other languages, so don’t go modifying your C or Java code thinking it’ll suddenly become faster, it won’t. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend’s PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.

举报

  • 相关推荐
  • 酒店光脚洗澡可能感染HPV?医生回应:需注意防护

    近日,“酒店光脚洗澡可能感染HPV”的话题引发广泛关注和热议。据媒体报道及医学专家指出,在酒店等公共场所光脚洗澡,确实存在感染跖疣病毒(一种低危型HPV病毒)的可能性,引发公众对公共场所卫生安全的担忧。 ​跖疣是由人乳头瘤病毒(HPV)引起的足部良性增生物,属于低危型HPV感染。在温暖潮湿的环境中,如酒店浴室,如果足部皮肤有微小破损或伤口,且与病毒

  • 医生回应酒店光脚洗澡或感染HPV:尽量避免在公共场所光脚

    近日,网络上关于在酒店光脚洗澡可能感染病毒的讨论持续升温。 6月30日,医生指出,光脚在酒店等公共场所洗澡确实存在感染跖疣病毒的风险。 跖疣,这一由人乳头瘤病毒引起的足部良性增生物,属于低危型HPV病毒。医生解释说,在足部环境潮湿的情况下,病毒更容易滋生和传播

  • 医生回应酒店光脚洗澡或感染HPV:尽量避免在公共场所光脚行走

    近日,酒店光脚洗澡可能感染跖疣病毒的话题引发广泛讨论。 医学专家指出,跖疣是由HPV病毒(人乳头瘤病毒)引起的足部良性增生,主要与HPV-1、2、4、27、57等亚型相关。这种疾病在潮湿环境中更易传播,足部外伤、摩擦或多汗者风险较高。 临床表现显示,跖疣会导致足跖部角质增生,可见疏松角质软芯及毛细血管出血形成的特征性黑点。多数患者行走时会出现明显疼痛�

  • 腾讯元宝上线AI编程模式:双栏界面实现边提需求边写代码

    今日,腾讯元宝发布更新,上线AI编程模式。 用户在电脑版选择DeepSeek模型并关闭深度思考后,输入@AI编程”后,即可进入AI编程模式。

  • 轻薄多彩 强悍耐用 | TECNO正式发布SPARK 40 系列

    传音旗下TECNO发布全新SPARK40系列手机,包含四款机型,主打轻薄机身与旗舰级配置。全系配备6.78英寸144Hz AMOLED屏、5200mAh大电池及45W快充,Pro+机型厚度仅6.49mm,支持30W无线充电。搭载联发科Helio G200处理器,安兔兔跑分近47万,配备5000万主摄和EIS防抖。AI方面整合ChatGPT等平台,支持离线通信功能。通过IP64防水防尘认证,采用抗摔玻璃,重新定义中端机性能标杆。

  • 韦神4秒视频引爆2400万粉丝,一场“知识IP”和平台的合谋?

    一条仅有4秒的视频,掀起了这个夏天最猛烈的一次“知识流量”风暴。 6月4日晚,北京大学助理教授韦东奕在抖音上传了一则极简自我介绍,迅速在全网引爆热度,24小时内粉丝破千万。截至目前,该账号已斩获超过2400万粉丝,成为现象级的出圈案例。 表面看,这是一个“学术清流”偶然踏入流量池的故事。但深入拆解,其背后是用户情绪、高考节点、社交共鸣与平台机制�

  • 天九共享免费开放低代码,助力100万家企业低成本数智化

    6月18日,天九数科集团宣布其低代码平台正式面向全球免费开放。该平台通过可视化拖拽、模块化组件等功能,可快速搭建ERP、CRM等管理系统,显著降低中小企业数字化转型门槛。目前中国中小企业数字化率不足20%,面临"不愿转、不敢转、不会转"困境。天九平台具有零成本接入、高效部署等优势,已帮助某餐饮企业一周内建成智能订货系统,人工误差减少30%。集团计划未来3年服务超100万家企业,助力实现2027年中小企业上云率超40%的政策目标,推动普惠数字经济发展。

  • 小米MIX Flip 2保外维修价格公布:主板最高2840元

    小米6月底发布新款折叠屏手机MIX Flip2,售价5999元。该机维修价格公布,主板维修费最高达2840元,可购买一台Redmi K80至尊版(2599元)。内外屏由TCL华星独家供应,均支持1.5K分辨率、120Hz刷新率。搭载骁龙8+芯片、5165mAh电池,支持67W快充和50W无线充电,配备5000万像素双摄。维修费用方面,内屏组件1730元,外屏500元,其他部件均不超过200元。人工维修费统一40元/次(数据线/充电器除外)。

  • 27岁程序员敲代码时视网膜脱离 眼科医生提醒高危人群

    ​近日, 27 岁的合肥程序员小李经历了一场惊心动魄的健康危机。凌晨 2 点,连续加班数小时的他突然发现电脑屏幕上的代码扭曲变形,视野上方浮现固定黑影,紧急就医后被确诊为孔源性视网膜脱离,且病变已累及视觉中枢黄斑区。经眼科专家连夜实施视网膜复位手术,其右眼视力虽未完全恢复至术前水平,但已保住基本视觉功能。 "这类疾病就像'眼球内的地震'�

  • 曝折叠屏iPhone已进入P1原型阶段:明年上市

    据供应链消息,折叠屏iPhone于6月份进入P1(Prototype 1)原型开发阶段,预计2025年底走完P1-P3整个开发流程。 然后再进入EVT(Engineering Verification Test)阶段,该阶段是工程样品验证测试,主要测试项目包括基本的功能测试、参数测量和一些规范验证,主要目标是确保能满足苹果设计要求和规范。 在P1到P3阶段,供应链会进行小量试产,再交由iPhone主力组装厂鸿海、和硕进行组装�