再见西城 发表于 2015-1-16 22:14:35

PHP网站制作之53个要点进步PHP编程效力

怎么培养啊别光说不练啊,好,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的linux下开发。此文章来自收集,有些尺度不完整认同,人人看看好了!

1、假如能将类的办法界说成static,就只管界说成static,它的速率会提拔快要4倍。

2、$row[’id’]的速率是$row的7倍。
3、echo比print快,而且利用echo的多重参数(译注:指用逗号而不是句点)取代字符串联接,好比echo$str1,$str2。
4、在实行for轮回之前断定最年夜轮回数,不要每轮回一次都盘算最年夜值,最好使用foreach取代。
5、刊出那些不必的变量特别是年夜数组,以便开释内存。
6、只管制止利用__get,__set,__autoload。
7、require_once()价值高贵。
8、include文件时只管利用相对路径,由于它制止了PHP往include_path里查找文件的速率,剖析操纵体系路径所需的工夫会更少。
9、假如你想晓得剧本入手下手实行(译注:即服务器端收到客户端哀求)的时候,利用$_SERVER[‘REQUEST_TIME’]要好过time()。
10、函数取代正则表达式完成不异功效。
11、str_replace函数比preg_replace函数快,但strtr函数的效力是str_replace函数的四倍。
12、假如一个字符串交换函数,可承受数组或字符作为参数,而且参数长度不太长,那末能够思索分外写一段交换代码,使得每次传送参数是一个字符,而不是只写一行代码承受数组作为查询和交换的参数。
13、利用选择分支语句(译注:即switchcase)好过利用多个if,elseif语句。
14、用@屏障毛病动静的做法十分低效,极为低效。
15、翻开apache的mod_deflate模块,能够进步网页的扫瞄速率。
16、数据库毗连当利用终了时应关失落,不要用长毗连。
17、毛病动静价值高贵。
18、在办法中递增部分变量,速率是最快的。几近与在函数中挪用部分变量的速率相称。
19、递增一个全局变量要比递增一个部分变量慢2倍。
20、递增一个工具属性(如:$this->prop++)要比递增一个部分变量慢3倍。
21、递增一个未预界说的部分变量要比递增一个预界说的部分变量慢9至10倍。
22、仅界说一个部分变量而没在函数中挪用它,一样会减慢速率(其水平相称于递增一个部分变量)。PHP也许会反省看是不是存在全局变量。
23、办法挪用看来与类中界说的办法的数目有关,由于我(在测试办法之前和以后都)增加了10个办法,但功能上没有变更。
24、派生类中的办法运转起来要快于在基类中界说的一样的办法。
25、挪用带有一个参数的空函数,其消费的工夫相称于实行7至8次的部分变量递增操纵。相似的办法挪用所消费的工夫靠近于15次的部分变量递增操纵。
26、Apache剖析一个PHP剧本的工夫要比剖析一个静态HTML页面慢2至10倍。只管多用静态HTML页面,罕用剧本。
27、除非剧本能够缓存,不然每次挪用时城市从头编译一次。引进一套PHP缓存机制一般能够提拔25%至100%的功能,以避免除编译开支。
28、只管做缓存,可以使用memcached。memcached是一款高功能的内存工具缓存体系,可用来减速静态Web使用程序,加重数据库负载。对运算码(OPcode)的缓存很有效,使得剧本不用为每一个哀求做从头编译。
29、当操纵字符串并必要查验其长度是不是满意某种请求时,你想固然地会利用strlen()函数。此函数实行起来相称快,由于它不做任何盘算,只前往在zval布局(C的内置数据布局,用于存储PHP
变量)中存储的已知字符串长度。可是,因为strlen()是函数,多几少会有些慢,由于函数挪用会经由诸多步骤,如字母小写化(译注:指函数名小写化,PHP不辨别函数名巨细写)、哈希查找,会跟从被挪用的函数一同实行。在某些情形下,你可使用isset()技能减速实行你的代码。
(举比方下)
if(strlen($foo)<5){echo“Fooistooshort”$$}
(与上面的技能做对照)
if(!isset($foo{5})){echo“Fooistooshort”$$}
挪用isset()刚巧比strlen()快,由于与后者分歧的是,isset()作为一种言语布局,意味着它的实行不必要函数查找和字母小写化。也就是说,实践上在查验字符串长度的顶层代码中你没有花太多开支。
34、当实行变量$i的递增或递加时,$i++会比++$i慢一些。这类差别是PHP独有的,其实不合用于其他言语,以是请不要修正你的C或Java代码并期望它们能当即变快,没用的。++$i更快是由于它只必要3条指令(opcodes),$i++则必要4条指令。后置递增实践上会发生一个一时变量,这个一时变量随后被递增。而前置递增间接在原值上递增。这是最优化处置的一种,正如Zend的PHP优化器所作的那样。切记这个优化处置不掉为一个好主张,由于并非一切的指令优化器城市做一样的优化处置,而且存在大批没有拆卸指令优化器的互联网服务供应商(ISPs)和服务器。
35、并非事必面向工具(OOP),面向工具常常开支很年夜,每一个办法和工具挪用城市损耗良多内存。
36、并不是要用类完成一切的数据布局,数组也很有效。
37、不要把办法细分得过量,细心想一想你真正盘算重用的是哪些代码?
38、当你必要时,你总能把代码分化成办法。
39、只管接纳大批的PHP内置函数。
40、假如在代码中存在大批耗时的函数,你能够思索用C扩大的体例完成它们。
41、评价查验(profile)你的代码。查验器会告知你,代码的哪些部分损耗了几工夫。Xdebug调试器包括了查验程序,评价查验整体上能够显现出代码的瓶颈。
42、mod_zip可作为Apache模块,用来立即紧缩你的数据,并可以让数据传输量下降80%。
43、在能够用file_get_contents替换file、fopen、feof、fgets等系列办法的情形下,只管用file_get_contents,由于他的效力高很多!可是要注重file_get_contents在翻开一个URL文件时分的PHP版本成绩;
44、只管的少举行文件操纵,固然PHP的文件操纵效力也不低的;
45、优化SelectSQL语句,在大概的情形下只管少的举行Insert、Update操纵(在update上,我被恶批过);
46、尽量的利用PHP外部函数(可是我却为了找个PHP内里不存在的函数,华侈了本能够写出一个自界说函数的工夫,履历成绩啊!);
47、轮回外部不要声明变量,特别是年夜变量:工具(这仿佛不但是PHP内里要注重的成绩吧?);
48、多维数组只管不要轮回嵌套赋值;
49、在能够用PHP外部字符串操纵函数的情形下,不要用正则表达式;
50、foreach效力更高,只管用foreach取代while和for轮回;
51、用单引号替换双引号援用字符串;
52、“用i+=1取代i=i+1。切合c/c++的习气,效力还高”;
53、对global变量,应当用完就unset()失落;
我是根据自己的成长历程来写的,如有不对的还请指正。

乐观 发表于 2015-1-19 05:55:54

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

再现理想 发表于 2015-1-27 23:52:25

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

因胸联盟 发表于 2015-2-5 16:23:21

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

愤怒的大鸟 发表于 2015-2-12 23:09:16

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

小魔女 发表于 2015-3-3 11:44:20

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

莫相离 发表于 2015-3-18 12:18:00

做为1门年轻的语言,php一直很努力。

不帅 发表于 2015-3-25 23:25:21

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
页: [1]
查看完整版本: PHP网站制作之53个要点进步PHP编程效力