首页>互联网>语言脚本>PHP>正文

PHP编程风格

日 期:2006-04-21     来 源:    阅 读:
  
在很多情况下PHP最可贵的特点也可能是它最薄弱的环节就是它的语法松散性。 PHP能够如此广泛的被使用,因为它使得许多没有经验的Web开发者能够制作出强大的应用程序,而用不着过多的考虑规划、连贯性和文档。
不幸的是,正是以上的特点,是的很多的PHP源代码很臃肿,很难阅读甚至无法维护。我深深的体会到这一点,因为我已经写了很多这样的代码。;-)
为了避免上面的情况以及很多其他的情况发生。很多的核心PHP开发人员和团体成员走到了一起,开始了PEAR,一个着力于增加PHP扩展和插件仓库的项目。到现在未知,来源于PEAR项目的文档和其他的东西还很少并且难以理解,这篇文章试图向开发者们讲述他们(PEAR小组)所做的事情。
决定代码可维护性的重要因素是代码的格式和注释。一个工程的所有代码应该以贯穿始终的形式组织。我非常坚持代码库的建设,我想程序员们也应如此。
(1)缩进
开发者所有的代码应该完全按照缩进的方式书写。这是提高代码可读性最基本的措施。即使你没有注释你的代码,缩进对于让其他人读懂
你的代码也是非常大的帮助。
例如下面的例子:
while ($x < $z) {
if ($a == 1) {
echo A was equal to 1;
} else {
if ($b == 2) {
//do something
} else {
//do something else
}
}
}
PEAR草案标准要求利用4个空格缩进而不是利用tab。我个人并不同意这个观点,我想我仍然会继续利用tab键。我认为使用tab比多个空格能够让文件变得更小。而更小的文件能够更快的被解释、上载、下载等等。而使用tab还有一个很大的有点,就是当观看其他人的代码时,你能够自己设置tab键的空格数。我通常使用8个空格长度的tab键设置,但是最近换成了4个空格长度的,呵呵,我把他称为代码的成重新格式化,仅仅是个人的爱好啦。
(2)控制结构
这个很大程度上取决于个人口味。我仍然可以看到很多的控制结构代码不带分支语句造成可读性非常差,如果你使用IF语句时不带分支,不但可读性变差,当其他人修改你的程序时,还会造成很多的bug。请看下例:
不好的例子:
if ($a == 1) echo A was equal to 1;
这是非常难以辨认的。它能够正常工作,但是除了你之外,别人根本不会赞赏这句代码。
有改进的例子:
if ($a == 1)
echo A was equal to 1;
现在至少这句代码可以读懂了,但是仍然没有很好的可维护性。如果当$a==1的时候我希望一个附加的事件发生,或者需要添加分支呢?如果后来的程序员忘记了添加大括弧或者else关键字,那么程序中将出现bug。
完美的例子
if (($a == 1) && ($b==2)) {
echo A was equal to 1;
//很容易的可以添加其他代码
} elseif (($a == 1) && ($b==3)) {
//其他操作
}
请注意在if和elseif后面的空格,这会将本语句和函数调用区分开来,此外,虽然在elseif的执行程序段中没有语句,只有注释,表面上显得多余可是却给以后维护程序的程序员给予了非常方便的提示,并且非常利于添加功能。

上一篇:gb2312 和 unicode 间的编码转换   下一篇:php编码规范
收藏本文到:
digg this! 添加到del.icio.us bbmao网络收藏夹 添加到365key 我顶 添加到bolaa 推荐到奇客发现 添加到新浪vivi 添加到google书签 添加到yahoo+
查看全部PHP内容  
  • gb2312 和 unicode 间的编码转换  2006-04-21 00:00:00
       下面的例子是将 gb2312 转换为 "#20840;"这种形式 php4.3.1以后的iconv函数很好用的,只是需要自己写一个uft8到unicode的转换函数 查表(gb2312.txt)也行 ? $text = "电子书...[阅读全文]
  • php编码规范  2006-04-21 00:00:00
       1. 介绍 1.1. 标准化的重要性 标准化问题在某些方面上让每个人头痛,让人人都觉得大家处于同样的境地。这有助于让这些建议在许多的项目中不断演进,许多公司花费了许多星期...[阅读全文]
  • for、while、foreach性能比较 - PHP篇  2006-04-21 00:00:00
       一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。那么它们在操作和性能上存在什么差别,通常使用那种方法比较好。 下面先让我们来...[阅读全文]
  • Discuz!4.0.0全攻略  2006-04-29 00:00:00
       安装使用篇 1. Discuz安装使用精华集 作者:全球通 http://www.discuz.net/viewthread ... hlight=%B0%B2%D7%B0 2. Discuz! 论坛安装图解傻瓜教程 作者:Aikko http://ww...[阅读全文]
  • IIS环境下安装PHP5手记  2006-04-19 00:00:00
       1,要下载2个php的安装包:一个是install版本的,另一个是zip版本的 。 2,运行install版本,按照标准模式安装就可以了,安装过程中注意正确选择你的iIS版本。 2000server 选i...[阅读全文]
  • PHP编码规范  2006-06-20 00:00:00
       1. 介绍 1.1. 标准化的重要** 标准化问题在某些方面上让每个人头痛,让人人都觉得大家处于同样的境地。这有助于让这些建议在许多的项目中不断演进,许多公司花费了许多星期...[阅读全文]
  • PHP部分常见问题  2006-04-19 00:00:00
       1:为什么我得不到变量 我在一网页向另一网页POST数据name,为什么输出$name时却得不到任何值? 在PHP4.2以后的版本中register_global默认为off 若想取得从另一页面提交的变...[阅读全文]
  • 使用PHP实现动态网页  2006-06-20 00:00:00
       今天,Web站点费尽心思想要为用户提供他们从未体验过的东西。除了友好的界面,细致的服务,实用的信息以外,为用户定制的动态的网页内容也能够提高Web站点的用处并加强访问...[阅读全文]
  • 用PHP5 轻松解析XML  2006-04-16 00:00:00
       用 sax 方式的时候,要自己构建3个函数,而且要直接用这三的函数来返回数据,要求较强的逻辑。在处理不同结构的 xml 的时候,还要重新进行构造这三个函数,麻烦! 用 dom ...[阅读全文]
  • 浅谈PHP语法  2006-06-20 00:00:00
       PHP的结构类似于C语言,这可是应证了C语言里提的“一处学习,到处编程”。相信学过C语言的人可很容易上手PHP的。还是先介绍一些PHP语法吧。本文适合初学者学习。 PHP与...[阅读全文]
  • PHP 4.1.0 的 php.ini 的全文翻译  2006-04-13 00:00:00
       转自http://www.im286.com/viewthread.php?tid=1146339extra=page%3D1%26filter%3Ddigest PHP其他版本可能有部分不同,对应参照即可 完整文件下载 http://noka.xqin.com/ph...[阅读全文]
  • php与mysql  2006-06-20 00:00:00
       一、PHP/MySQL简介 您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上。这场运动有着巨大的冲击力,已引起一些大公司的注意。象Oralce、Informix...[阅读全文]
  • Discuz!查看本版加分加亮主题的插件  2006-04-13 00:00:00
       名称:Discuz!4.0正式版“ 查看本版加分加亮主题 ”的插件 类型:实用插件 版本:适用于Discuz!4.0正式版,其他4.0.X版本也可修改使用 作者:小勤 演示: http://bbs.xqin.c...[阅读全文]
  • PHP入门  2006-06-20 00:00:00
       PHP是一种用于创建动态WEB页面的服务端脚本语言。如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进...[阅读全文]
  • 手把手教你写私服列表小偷[php+html+缓存]  2006-04-13 00:00:00
       这个是偷haosf.com的,你可以自己偷其他站,私服列表一般只需要偷最新的就可以了,多偷几个站,就成为一个不需要更新的私服发布站了,呵呵.我的服务器已经给n个私服站封ip了,就...[阅读全文]
  • 简体中文转换为繁体中文的PHP函数  2006-06-20 00:00:00
       感谢网友Keyes提供移植用的Delphi源代码。其调用方式为$txt=gbtobig5($txt)。 (注:源代码中的include "data_gb.php";这个文件在就是一个数组,在http://caocao.oso.com.c...[阅读全文]
  • 256色BMP图片验证码识别脚本  2006-04-13 00:00:00
       基本说明: 您可以通过本代码片段,了解到: 1.BMP的文件结构,存储方式。 2.对于简单的图像验证码如何进行识别处理。 当然,您也可以使用它完成对一些简单的符合条件的图...[阅读全文]
  • 繁体中文转换为简体中文的PHP函数  2006-06-20 00:00:00
       前几天我在oso论坛上问有没有这个源程序,没人回复。终于下定决心移植一个这样的函数,感谢网友Keyes提供移植用的Delphi源代码。其调用方式为$txt=big5togb($txt)。 (注:...[阅读全文]
  • PHP5.0不完全兼容PHP4  2006-04-13 00:00:00
       【摘 要】PHP是一种简单,实用的动态网页编程语言。目前最新版为5.01,其使用帮助内含最新UNIX和Windows安装文档。 期待已久的PHP5终于在当地时间7月13日正式发布了。无论...[阅读全文]
  • 汉字转换为拼音的一个函数  2006-06-20 00:00:00
       很多问题都是因为中文问题造成的 如文件名最好别用中文 现在的解决方法一般是产生一个ID,将这个ID做文件名 网页上如果url带汉字也经常出错 现在的解决方法一般用urlencode...[阅读全文]
 用户名: 新注册) 密码: 匿名发表 评论(0条)
 评论内容:(不能超过250字,不支持HTML或代码,只能发表纯文字,请自觉遵守互联网相关政策法规。)
[an error occurred while processing this directive]
合作伙伴: 电脑综合 8vv8娱乐榜

关于扑虎 | 扑虎新闻 | 联系扑虎 | 广告服务 | 招贤纳士

Copyright @ 2006-2007 poohu.com. All Right Reserved 陕ICP备06010975号