迷你WOW总结

对于PHP的初学者来说,做出一个这样简单的小程序是不会花费太多时间的。每天几个小时的时间看书写代码,一周的时间也可以完成了。没错,说的是初学者,一个没有PHP编程经验的初学者。我在写这个程序的时候,是只会一丁点PHP。做这个小项目,我觉得更多的是要对PHP有一个大概的了解,熟悉其基本的操作和应用。磨刀不误砍柴工,学会如何使用工具才能顺利地工作。

下面就这个项目说一下我从中获得的经验教训。

初学者的一页式程序

查看一下我的迷你WOW程序代码,可以看到几乎每一个页面都是一个单独的程序。程序与程序之间关联性不是很强。每个单独的PHP文本都尝试在一个文件内完成整个页面的所有功能。例如index.php,不仅含有登录功能,还含有首页动作展示的功能。更让人头疼的是,程序逻辑和页面显示相互混杂,区分起来比较困难。当初我这样写程序的时候是没意识到的,但是到了要整理代码的时候发现这个程序难以整理,倒不如重新编写一个框架简洁,逻辑清晰的程序。

写出这样的程序并不算错。因为刚刚接触这种编程模式,还对程序整体没有把握。一旦理清了自己的程序结构,对语言有了一定的了解,自然而然地就会发现自己程序的不足从而进行改进。

PHP的变量

PHP的弱类型的变量是我最喜欢的特点之一。你可能学过C/C++,Java或其他一些编程语言。他们在使用变量之前都要事先声明这个变量。刚接触PHP的时候我也是习惯性地这么做。后来发现不仅不需要这么做,如果这么做的话反而会引发一些错误。PHP变量的类型不在于你如何声明,而在于你给它赋予什么样的值。不需要事先声明,随用随写。$var有可能此刻是int型,下一刻就变成了字符串。

$key = 1;
// do something
$key = 'Oh, it's a secret';
// do something else

但是注意:虽然PHP允许这么做,为了程序的可读性,我强烈建议你不要这么做。这么做的后果是代码难以维护,前后产生歧义,让人难以理解。一个变量应该具有其唯一的意义,当然也包括类型。给变量取个有意义的名字,指定一个唯一的类型,自己看着也干净利落。

使用函数,大量的函数

这个迷你WOW一共也没使用几个函数。为了让界面和程序逻辑分离,我尝试把每个页面共用的页眉页脚分离出来。至于每个页面都有不同的标题,可以通过传递参数来解决这个问题。我确实这样做了,其中借鉴了Wordpress使用主题模板的方法。我写了header.php和footer.php两个模板,里面大部分是HTML代码,只有标题信息等变量通过PHP代码输出。然后在function.php中定义了两个函数,用require 函数来调用模板。因此便有了每段程序开头的getheader()和结尾的getfooter()。

get_header($headerData);
// do something
get_footer();

我的这个程序并没有像这段的标题所说使用大量函数,后来在做另一个项目的时候我终于尝到了使用函数的甜头。每个函数只做一件事,这会让你的程序变得清晰易懂,易于维护。而不像我的这第一个作品这样充斥着繁杂冗余的内容和让人难以理解的过程。

多读代码,读好代码

个人认为,评判好代码和坏代码的标准就是——代码是否易读。好的代码是你顺着编程者的逻辑一步一步看下去,看到程序结尾了也知道作者的意图了。而坏的代码通常是读了好几遍也不知道是什么意思,让你大叫WTF!当然,前面假设你了解作者使用的编程语言。我的迷你WOW显然是属于坏的代码范畴内的,因为连我自己都不知道如何整理它比较好了。比如data.php的输出部分就很混乱。

WordPress的代码可能算是好代码范畴内的。我在做迷你WOW的时候看过一些,很容易理解代码的意图。但是不建议刚上来就看这么复杂的代码,可以从简单的程序开始一点一点学习。毕竟如果你不想做Wordpress的开发,就没必要去深入了解其代码内容。读前辈的代码也是个不错的选择,但是要带着批判的眼光。

用心学习基础知识

做什么事都少不了基础知识。有基础才有上层建筑。这个迷你WOW彻底沦为我用来掌握基础知识的试炼程序,回头来看,还真是不怎么样。但愿以后别再写出这样糟糕的程序。如果你是一个初学者并且在看我的代码,希望不要学习这种程序结构,在其中了解一些语法规则和PHP基本方法还是可以接受的。

这样写完一个小型的比较系统的程序以后,思维自然而然地就会理顺一些。对开展下一个项目也会产生一定的信心。虽然可能掌握的东西还是很少,但学习是需要一个艰苦的过程的。不能持之以恒的话,怎么能学到真本事呢?

推荐的参考教程

之前我也一直为参考教材发愁,但是后来发现教材什么的都是浮云。PHP官方网站上提供了详细的说明文档,每个特性,方法,功能下面还有一些人提供的程序样例。这就是一个好教材啦!就像Android一样,市面上的教材基本都是开发者网站的翻译版。官方网站提供了详细的说明文档,怎么用就看你自己了。同时也推荐看一些前辈编写的经验总结,从其中去糟取精,唯一要达到的目的就是使自己进步。

喜欢这篇文章?

欢迎订阅 PureWeber.com - 纯粹互联网。接收免费的更新提醒,以及订阅读者独家优质内容。

付建宇

加入讨论

电子邮件地址不会被公开。 必填项已用*标注