从事开发行业经验是非常重要的,本篇文章小编就和大家分享一下PHP编写的经验,希望能帮到对PHP开发感兴趣的小伙伴们。
 
当操作字符串并且需要检验它的长度是不是可以满足某种要求时,一般都是当然地会去使用strlen()函数。这个函数执行起来那是相当快,因为它不会做任何计算,只是返回在zval 结构(C的内置数据结构,是用于存储PHP变量的)中所存储的已知的字符串长度。但是,由于strlen()是函数,多多少少的还是会有些慢,这是因为函数的调用会经过诸多的步骤,例如字母小写化(译注:指函数名的小写化,PHP是不区分函数名大小写的)、哈希查找,会和被调用的函数一并执行。在一些情况下,你也可以使用isset() 技巧去加速执行你的代码。
 
(举例如下) if (strlen($foo) < 5) { echo 'Foo is too short'; }
 
(和下面的技巧做比较) if (!isset($foo[5])) { echo 'Foo is too short'; }
 
调用isset()刚好要比strlen()快,这是因为和后者不同的是,isset()是作为一种语言结构,这就意味着它的执行不需要那些函数查找和字母小写化。这也就是说,实际上我们在检验字符串长度的顶层代码中没有花太多的开销。
 
当我们在执行变量$i的递增或者递减时,$i++会比++$i稍微慢些。当然这种差异是PHP本身特有的,这并不适用于其他的语言,所以不需要去修改你的C或Java代码 然后去指望它们能马山就变快,没用的。++$i速度更快是因为它只需要执行3条指令(opcodes),而$i++则需要4条指令。那些后置递增实际上可以产生一个临时的变量,而这个临时变量在随后被递增。前置递增则是直接在原值上递增。这是我们最优化处理手段的一种,就好像Zend的PHP优化器所作的那样。牢牢的记住这个优化处理也不失为一个好主意,毕竟不是所有的指令在优化器都会去做同样的优化处理,而且还存在大量没有装配指令优化器的互联网服务提供商(ISPs)以及服务器。
 
并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。
 
并非要用类实现所有的数据结构,数组也很有用。
 
不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码。
 
当你需要时,你总能把代码分解成方法。
 
尽量采用大量的PHP内置函数。
 
如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。
 
评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
 
mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。
 
在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多。但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;
 
尽量少的进行文件操作,虽然PHP的文件操作效率也不低的;
 
优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作;
 
尽可能的使用PHP内部函数;
 
循环内部不要声明变量,尤其是大变量:对象;
 
多维数组尽量不要循环嵌套赋值;
 
在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;
 
foreach效率更高,尽量用foreach代替while和for循环;
 
"用i+=1代替i=i+1。符合c/c++的习惯,效率还高";
 
对global变量,应该用完就unset()掉;