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

最模板

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

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

时间:2014-05-28 00:26来源:未知 作者:最模板zuimoban 点击:
40.使用 ++$i递增 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

40.使用++$i递增

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 preincrementation 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.

 
 当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望
它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时
变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并
不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务

提供商(ISPs)和服务器。

40. 不要随便就复制变量

有时候为了使 PHP 代码更加整洁,一些 PHP
新手(包括我)会把预定义好的变量复制到一个名字更简短的变量中,其实这样做的结果是增加了一倍的内存消耗,只会使程序更加慢。试想一下,在下面的例子
中,如果用户恶意插入 512KB 字节的文字到文本输入框中,这样就会导致 1MB 的内存被消耗!

BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];

41 使用选择分支语句

     switch case好于使用多个if,else if语句,并且代码更加容易阅读和维护。

42.在可以用file_get_contents替代file、fopen、feof、fgets

   
在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用
file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;

43.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;

44.优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);

45.尽可能的使用PHP内部函数

46.循环内部不要声明变量,尤其是大变量:对象

   (这好像不只是PHP里面要注意的问题吧?);

47.多维数组尽量不要循环嵌套赋值;

48.foreach效率更高,尽量用foreach代替while和for循环;

50.对global变量,应该用完就unset()掉;

51 并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。

52 不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?

53 如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。

54、压缩输出:打开apache的mod_deflate模块,可以提高网页的浏览速度。

   (提到过echo 大变量的问题)

55、数据库连接当使用完毕时应关掉,不要用长连接。

56、split比exploade快

split()
0.001813 - 0.002271 seconds (avg 0.002042 seconds)
explode()
0.001678 - 0.003626 seconds (avg 0.002652 seconds)
Split can take regular expressions as delimiters, and runs faster too. ~23% on average.

(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容