最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

PHP高效率写法详细描述(2)

时间:2014-05-28 00:26来源:未知 作者:最模板zuimoban 点击:
7.在includes和requires中使用绝对路径。 如果包含相对路径,PHP会在include_path里面遍历查找文件。 用绝对路径就会避免此类问题,因此解析操作系统路径所需

7.在includes和requires中使用绝对路径。

  如果包含相对路径,PHP会在include_path里面遍历查找文件。
  用绝对路径就会避免此类问题,因此解析操作系统路径所需的时间会更少。

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

  可以想象。一个是现成就可以直接用,一个还需要函数得出的结果。

9.能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式; 因为其效率高于正则;

 没得说,正则最耗性能。
 有没有你漏掉的好用的函数?例如:strpbrk()strncasecmp()strpos()/strrpos()/stripos()/strripos()加速 strtr如果需要转换的全是单个字符的时候,
用字符串而不是数组来做 strtr:
<?php
$addr = strtr($addr, "abcd", "efgh"); // good
$addr = strtr($addr, array('a' => 'e', )); // bad
?>
效率提升:10 倍。

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

  另外不要做无谓的替换即使没有替换,str_replace 也会为其参数分配内存。很慢!解决办法:
  用 strpos 先查找(非常快),看是否需要替换,如果需要,再替换效率:- 如果需要替换:效率几乎相等,差别在 0.1% 左右。
  如果不需要替换:用 strpos 快 200%。

11.参数为字符串

  如果一个函数既能接受数组又能接受简单字符做为参数,例如字符替换函数,并且参数列表不是太长,可以考虑额外写一段替换代码,使得每次传递参数都是一   个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2;

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

   用@实际上后台有很多操作。用@比起不用@,效率差距:3 倍。特别不要在循环中使用@,在 5 次循环的测试中,即使是先用 error_reporting(0) 关掉错误,在循环完成后再打开,都比用@快。

13.$row['id']比$row[id]速度快7倍

    建议养成数组键加引号的习惯;

14.在循环里别用函数

   例如For($x=0; $x < count($array); $x), count()函数在外面先计算;原因你懂的。

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

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

  由于局部变量是存在栈中的,当一个函数占用的栈空间不是很大的时候,这部分内存很有可能全部命中cache,这时候CPU访问的效率是很高的。
  相反,如果一个函数里既使用了全局变量又使用了局部变量,那么当这两段地址相差较大时,cpu cache需要来回切换,那么效率会下降。
  (我理解啊)

(责任编辑:最模板)

------分隔线----------------------------
栏目列表
推荐内容