仓酷云

标题: PHP教程之PHP开辟技能:PHP网站发开适用技能集锦 [打印本页]

作者: 不帅    时间: 2015-2-3 23:38
标题: PHP教程之PHP开辟技能:PHP网站发开适用技能集锦
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。   </p> 用单引号取代双引号来包括字符串,如许做会更快一些。由于PHP会在双引号包抄的字符串中搜索变量,单引号则不会,注重:只要echo能这么做,它是一种可以把多个字符串看成参数的“函数”(译注:PHP手册中说echo是言语布局,不是真实的函数,故把函数加上了双引号)。
1、假如能将类的办法界说成static,就尽可能界说成static,它的速度会提拔快要4倍。
2、$row[’id’] 的速度是$row[id]的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、利用选择分支语句(译注:即switch case)好过利用多个if,else if语句。
14、用@屏障毛病动静的做法十分低效,极为低效。
15、翻开apache的mod_deflate模块,可以进步网页的阅读速度。
16、数据库毗连当利用终了时应关失落,不要用长毗连。
17、毛病动静价值昂贵。
18、在办法中递增部分变量,速度是最快的。几近与在函数中挪用部分变量的速度相当。
19、递增一个全局变量要比递增一个部分变量慢2倍。
20、递增一个对象属性(如:$this->prop++)要比递增一个部分变量慢3倍。
21、递增一个未预界说的部分变量要比递增一个预界说的部分变量慢9至10倍。
22、仅界说一个部分变量而没在函数中挪用它,一样会减慢速度(其水平相当于递增一个部分变量)。PHP也许会反省看是不是存在全局变量。
用单引号取代双引号来包括字符串,如许做会更快一些。由于PHP会在双引号包抄的字符串中搜索变量,单引号则不会,注重:只要echo能这么做,它是一种可以把多个字符串看成参数的“函数”(译注:PHP手册中说echo是言语布局,不是真实的函数,故把函数加上了双引号)。
1、假如能将类的办法界说成static,就尽可能界说成static,它的速度会提拔快要4倍。
2、$row[’id’] 的速度是$row[id]的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、利用选择分支语句(译注:即switch case)好过利用多个if,else if语句。
14、用@屏障毛病动静的做法十分低效,极为低效。
15、翻开apache的mod_deflate模块,可以进步网页的阅读速度。
16、数据库毗连当利用终了时应关失落,不要用长毗连。
17、毛病动静价值昂贵。
18、在办法中递增部分变量,速度是最快的。几近与在函数中挪用部分变量的速度相当。
19、递增一个全局变量要比递增一个部分变量慢2倍。
20、递增一个对象属性(如:$this->prop++)要比递增一个部分变量慢3倍。
21、递增一个未预界说的部分变量要比递增一个预界说的部分变量慢9至10倍。
22、仅界说一个部分变量而没在函数中挪用它,一样会减慢速度(其水平相当于递增一个部分变量)。PHP也许会反省看是不是存在全局变量。
if (strlen($foo) < 5) { echo “Foo is too short”$$ } (与上面的技能做对照)
if (!isset($foo{5})) { echo “Foo is too short”$$ } 挪用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、优化Select SQL语句,在能够的情形下尽可能少的停止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-2-4 04:40
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 蒙在股里    时间: 2015-2-9 15:50
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
作者: 谁可相欹    时间: 2015-2-27 09:05
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 第二个灵魂    时间: 2015-3-1 17:05
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 只想知道    时间: 2015-3-1 20:03
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 乐观    时间: 2015-3-13 07:37
当然这种网站的会员费就几十块钱。
作者: 再现理想    时间: 2015-3-17 04:10
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 小妖女    时间: 2015-3-19 22:16
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 简单生活    时间: 2015-3-27 10:11
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 兰色精灵    时间: 2015-4-11 15:10
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 金色的骷髅    时间: 2015-4-13 15:56
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 海妖    时间: 2015-5-7 06:59
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 飘飘悠悠    时间: 2015-5-8 08:24
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 仓酷云    时间: 2015-6-9 02:13
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 小魔女    时间: 2015-6-16 06:55
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 变相怪杰    时间: 2015-6-16 20:10
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 爱飞    时间: 2015-7-4 01:04
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 透明    时间: 2015-9-25 21:08
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 冷月葬花魂    时间: 2015-9-28 20:39
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2