怎样才能成为PHP高手?

二、编写漂亮的代码

  1.将后台程序与前端程序分开

  在编写PHP程序时,有些代码是用来处理一些事务,例如操作数据库、进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以HTML的格式显示在Web浏览器上的PHP代码以及那些直接嵌入PHP程序的HTML代码。首先我们应该清楚地区分这两种代码,把前者称为后台程序,把后者称为前端程序。

  因为PHP是一种嵌入式编程语言,也就是说,所有的PHP代码都可以嵌入到HTML代码之中,这为程序的编写带来了许多便利之处。但是,“物极必反”,假如在一段较长的程序中将PHP代码和HTML代码混合编写,这将使程序杂乱无章,不利于程序的维护和阅读。所以我们需要尽可能地将这些程序中混杂于HTML代码中的PHP代码移植出来,在专门的文件中将这些代码封装成函数,然后在HTML代码中使用include语句来包含这些文件,在适当的位置调用这些函数即可。

  这种做法一方面使HTML代码和PHP代码都简单易读,另一方面因为HTML代码需要不断更新,而这种分离的方法可以确保后台程序不会被破坏。

  同前端程序不同,后台程序更多追求的是稳定、结构化,极少更改,所以应该认真地设计和治理。其实,在设计台程序时,投入大量时间是值得的,“现在栽树,以后乘凉”,在以后的设计工作中将可以轻松地使用现在编写的后台程序。

  2.灵活使用包含文件

  正如前面所说的那样,后台程序应当安排在一系列的包含文件中。包含文件可以通过include语句在需要时动态装入,也可以在php.ini文件中通过使用auto_prepend_file指令预先自动装入。

  假如使用后一种方法的话,虽然取得了一劳永逸的好处,但是也有一些缺点值得我们注重。下面的一段代码向我们展示了解析一个庞大的包含文件需要一定的时间:

require(timing.inc);
ss_timing_start();
include(test.inc);
ss_timing_stop();
echo
.ss_timing_current().
;
?>

  在上面的代码中,test.inc是一个1000行的包含文件,运行的结果显示,解析这个包含文件花费了0.6秒钟,对于一个大型网站来说,这个速度并不是可以忽略不记的。

  使用包含文件的另外一个缺点是:假如一个文件中的一个语句发生错误,将会使整个网站的PHP程序都无法运行。所以使用起来也及其小心。

  其实,对包含文件稍做处理,即可以使包含文件只在需要时进行解析。下面的代码使abc.inc文件只在程序需要时才作解析:

if ( defined( _LIBA_INC) ) return;
define( _LIBA_INC, 1 );
/*
* 代码...
*/
?>

  3.使用面向对象的编程方法

  PHP也是一种面向对象的语言,面向对象的编程方法是优秀的程序员们非常推崇的一种软件设计方法,在PHP编程中可以充分发挥面向对象语言的优势,对编程中的对象进行封装。在前面的代码中,我们使用了面向对象的方法,例如在治理数据库时,我们将query()函数封装进数据库类中,这极大地方便了代码的治理,增加了程序的可读性。

  三、追求程序速度,而不是编程的速度

  在网站建设中,程序运行速度和网页下载速度都是关系成败的重要因素。作为一名Web程序员,应该更加注重代码的运行速度。下面介绍的几种方法都在不同程度上提高了代码的运行速度。

  1.使用内嵌的HTML代码,而不是PHP的echo语句。

  因为PHP是一门嵌入式Web编程语言,可以将HTML代码和PHP代码相互嵌入。但是很多程序员担心在HTML代码中过多的使用""嵌入PHP代码会多次调用PHP解释器,从而降低了PHP代码的运行速度,所以宁愿使用PHP的echo语句来输出HTML代码,而不直接使用HTML代码。但事实却恰恰相反。每一个PHP页面只调用一次PHP解释器来解释所有的PHP代码,所以,只在需要时才嵌入PHP代码,而大多数的时候直接使用HTML代码输入结果,不但不会降低程序的运行速度,而且因为减少了对echo语句的解析,往往可以提高代码的运行速度。

  下面的一段代码证实了我们的结论。在这段代码中,我们使用了前面介绍的时间测试函数。

  使用str-replace而不是ereg-replace

  习惯使用Perl进行编程的程序员更加愿意使用ereg_replace完成字符串替换工作,因为在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的这段代码证实,使用str_replace 代替 ereg_replace将可以大大提高代码的运行速度。

  测试str_replace和ereg_replace的运行速度

//这段代码测试str_replace的运行速度

emphasis; ?>

for ($i=0; $i<1000; $i ) {
 str_replace(i>, b>, $string). ;
}
?>

//这段代码测试ereg_replace的运行速度

for ($i=0; $i<1000; $i ) {
 ereg_replace(<([/]*)i>, <1b>, $string).
;
}
?>

//打印结果

时间: 2024-10-15 06:55:20

怎样才能成为PHP高手?的相关文章

怎样才能成为PHP高手?学会“懒惰”的编程

PHP是一门高效的网络编程语言,由于它具有编写灵活.运行快速等优点,迅速成为Web程序员的首选语言.前不久的一份权威调查表明,现在已经有31.6%的网站使用PHP作为主要的服务器端编程语言. 但是,要成为一名PHP编程高手却并不容易.并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题.以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则. 1.懒惰是金 2.编写漂亮的代码 3.追求程序的速度,而不是

网站流量分析能力是通往高手SEO的另一桥梁

如果你觉得每天看内容和外链的分享文章有点烦,那么这篇可以帮助提升你分析能力的文章,绝对少不了.王施帆经常会遇到一些SEO朋友像"我要怎么学习才能成为SEO高手呢?"此类问题,其实,如果想成为SEO高层次的人,王施帆认为需要从点滴积累开始,而且SEO各个方面的知识都需要有了解和自己的体会.比如网站流量分析的能力就是成为高手SEO的另一桥梁.我们该如何去学好它呢?让各位和王施帆一起分享这个话题的二大部分吧! 一.流量数据的介绍. 概念性的东西,很多SEO工作者都无视的,认为没什么实际意义,

大家讨论下!到什么程度才算C#高手呢?

问题描述 必须掌握什么,到什么程度才算C#高手呢? 解决方案 解决方案二:唔只解决方案三:当他觉得来CSDN已不能学到值得学的东西,而是浪费时间!解决方案四:当你能毫不犹豫的每天散几百分就差不多算是了解决方案五:当他把c#高级编程给他儿子跌摔炮玩解决方案六:到自己可以写书的时候就差不多了.解决方案七:haha解决方案八:大便时能拉出C#模样的时候.解决方案九:"高手"是一个相对概念.你比另外一个人强,在他的眼里你就是"高手",但是在别人眼里,你可能还是菜鸟.高手和&

解析关键词排名稳居百度前三的秘诀

针对百度进行seo优化是一个漫长的过程,获得首页的排名又着实不易,一旦关键词排名进入首页又得小心翼翼的维护,生怕一个不小心排名就一落千丈,于是每天像个辛勤的蜜蜂一样辛苦的更新着网站内容,辛苦的发着网站外链,这些大概就是一个seoer的生活吧.难道获得排名后,就一定要靠着每天更新着内容,每天发着外链来稳定网站的排名吗?其实在我自己的经验看来,稳定百度关键词排名的诀窍不止于此,应该有更好的方法.以下谈谈我个人如何让关键词稳居百度前三的方法,希望能够抛砖引玉,也期待大家更好的方法. 一.文章内链错综复

《Total Commander:万能文件管理器》——第12章. 持续提高TC应用水平 12.1.是否必要

第12章. 持续提高TC应用水平 这是TC学堂的最后一章,兼作结束语.本章内容不涉及任何TC的具体功能,而是从一般意义上,谈一下如何持续提高TC的应用水平.如果你只关注TC的技巧,可能会认为本章空洞无物(如同TC学堂的序言部分一样).但是,我必须指出,任何软件--至少是TC.Vim这种境界的软件--必须达到"所好者道也,进乎技矣"的认识,才能真正进入高手之列. 12.1.是否必要 做任何事,既要坚定信念,专心致志,但同时,勿忘反思.在不断了解和追求TC技巧的同时,我们要反问自己:到了目

第一次,你该如何向投资人“讲故事”

摘要: 先说清楚,这篇文章不是教创业者如何忽悠投资人钱的.后面的方法如果会对你有用,一定是你的项目本身就是个好项目,你把你自己要做的事情也想得十分清楚了,只因为你是个融资 先说清楚,这篇文章不是教创业者如何忽悠投资人钱的.后面的方法如果会对你有用,一定是你的项目本身就是个好项目,你把你自己要做的事情也想得十分清楚了,只因为你是个融资新手,不善言辞,不知道如何说自己的项目,谈了几家下来,反响平平.我曾经希望曾经融过资的朋友传授一些融资的技能,但是对方往往来一句:做你自己就好,不要舍本逐末. 这不是

《告别失控:软件开发团队管理必读》一一1.1 程序员都做什么

1.1 程序员都做什么 首先,程序员的工作很有趣!Fred Brooks在软件工程的经典名著之一<人月神话>[6]中很好地总结了程序设计充满乐趣的原因. "第一,是纯粹的创造的愉悦--""第二,是做出对其他人有用的东西而带来的快乐--""第三,是设计组装谜题一样环环相扣的复杂部件,并观看着它们巧妙地运转而产生的吸引力--""第四,是持续学习的乐趣,这来源于任务的无重复特性--""第五,工作的对象是可以自由

【DBA】如何快速的成为一个合格的Oracle DBA?

[DBA]如何快速的成为一个合格的Oracle DBA? 本文转载自 http://mp.weixin.qq.com/s?__biz=MjM5NDA1NjI2MQ==&mid=216908504&idx=2&sn=7716320cfcd3a460ad096b525753acdf#rd&ADUIN=642808185&ADSESSION=1444615691&ADTAG=CLIENT.QQ.5443_.0&ADPUBNO=26527 在这样一个清晨写下

技术人员的眼高手低

进了一个技术群,发现里面眼高手低的人实在是不少. 初级问题觉得不够高深.不屑一顾. 实际上:回答一些初级的问题,往往能够加深自己的理解.尤其是越通俗易懂得解释,越说明个人的领悟层面高低. 可能真正让他去认真解释,连他自己都不是很清楚,这类人固步自封了. 装大牛. 跟写文章一样,写了总结能够加深理解,在写的过程中,才知道自己原来某个知识点欠缺,似是而非的的理解层面,让我表述,根本表述不全.就得去补习一下,才能写下去.把自己的理解以文字形式表达出来,确实让我能够整理思路. 所以,眼高手低确实不少.可