PHPCMS开发文档里看到PHP编码规范(2)
来源:asp之家 发布时间:2009-08-18 11:17:00
4.2.注释
注释是对于那些容易忘记作用的代码添加简短的介绍性内容。请使用 C 样式的注释“/* */”和标准 C++ 注释“//”。
程序开发中难免留下一些临时代码和调试代码,此类代码必须添加注释,以免日后遗忘。所有临时性、调试性、试验性的代码,必须添加统一的注释标记“//debug”并后跟完整的注释信息,这样可以方便在程序发布和最终调试前批量检查程序中是否还存在有疑问的代码。例如:
$num = 1;
$flag = TRUE; //debug 这里不能确定是否需要对$flag进行赋值
if(empty($flag)) {
//Statements
}
4.3.书写规则
4.3.1. 缩进
每个缩进的单位约定是一个TAB(8个空白字符宽度),需每个参与项目的开发人员在编辑器(UltraEdit、EditPlus、Zend Studio等)中进行强制设定,以防在编写代码时遗忘而造成格式上的不规范。
本缩进规范适用于PHP、JavaScript中的函数、类、逻辑结构、循环等。
4.3.2. 大括号{}、if和switch
首括号与关键词同行,尾括号与关键字同列;
if结构中,if和elseif与前后两个圆括号同行,左右各一个空格,所有大括号都单独另起一行。另外,即便if后只有一行语句,仍然需要加入大括号,以保证结构清晰;
switch结构中,通常当一个case块处理后,将跳过之后的case块处理,因此大多数情况下需要添加break。break的位置视程序逻辑,与case同在一行,或新起一行均可,但同一switch体中,break的位置格式应当保持一致。
以下是符合上述规范的例子:
If ($condition)
{
switch ($var)
{
case 1: echo ‘var is 1’; break;
case 2: echo ‘var is 2’; break;
default: echo ‘var is neither 1 or 2’; break;
}
}
else
{
switch ($str)
{
case ‘abc’:
$result = ‘abc’;
break;
default:
$result = ‘unknown’;
break;
}
}
4.3.3. 运算符、小括号、空格、关键词和函数
每个运算符与两边参与运算的值或表达式中间要有一个空格,唯一的特例是字符连接运算符号两边不加空格;
左括号“(” 应和函数关键词紧贴在一起,除此以外应当使用空格将“(”同前面内容分开;
右括号“)”除后面是“)”或者“.”以外,其他一律用空格隔开它们;
除字符串 * 意需要,一般情况下,在程序以及HTML中不出现两个连续的空格;
任何情况下,PHP程序中不能出现空白的带有TAB或空格的行,即:这类空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格。多数编辑器具有自动去除行尾空格的功能,如果习惯养成不好,可临时使用它,避免多余空格产生;
每段较大的程序体,上、下应当加入空白行,两个程序块之间只使用1个空行,禁止使用多行。
程序块划分尽量合理,过大或者过小的分割都会影响他人对代码的阅读和理解。一般可以以较大函数定义、逻辑结构、功能结构来进行划分。少于15行的程序块,可不加上下空白行;
说明或显示部分中,内容如含有中文、数字、英文单词混杂,应当在数字或者英文单词的前后加入空格。
根据上述原则,以下举例说明正确的书写格式:
$result = (($a + 1) * 3 / 2 + $num)).’Test’;
$condition ? func1($var) : func2($var);
$condition ? $long_statement
: $another_long_statement;
if ($flag)
{
//Statements
//More than 15 lines
}
Showmessage(‘请使用 restore.php 工具恢复数据。’);
4.3.4. 函数定义
l 参数的名字和变量的命名规范一致;
l 函数定义中的左小括号,与函数名紧挨,中间无需空格;
l 开始的左大括号另起一行;
l 具有默认值的参数应该位于参数列表的后面;
l 函数调用与定义的时候参数与参数之间加入一个空格;
l 必须仔细检查并切实杜绝函数起始缩进位置与结束缩进位置不同的现象。
例如,符合标准的定义:
function authcode($string, $operation, $key = '')
{
if($flag)
{
//Statement
}
//函数体
}
不符合标准的定义:
function authcode($string,$operation,$key = '') {
//函数体
}
猜你喜欢
- 北京时间2008年7月26消息,据国外媒体报道,最近,微软和一些亚洲研究机构一起提出新的搜索引擎Web页面等级排序方法BrowseRank。
- 由于DedeCms没有将文章的生成地址保存在数据库中,因此需要做的就是索引一个字段:LinkUrl来保存文章生成地址。1、通过Mysql运行
- 火狐公布火狐4.0版的更多技术详情北京时间5月11日消息,据国外媒体报道,火狐(Firefox)浏览器开发商Mozilla技术开发副总裁迈克
- 一、Wordpress Mu是Wordpress的多用户版,虽然在内核上是一样的,但是也有一些插件、模板并不能通用,一部分可以通过简单的修改
- 相信这个问题近两天大家都遇到了吧,DZ官方说是js的冲突造成了,无从考究了,找到了一个解决方法:修改论坛目录下 includejscommo
- 做SEO的人都知道链接在SEO中的重要性,我原来也写过关于正确使用链接认识链接的一些文章,但现在仍然还是存在者各式各样的垃圾链接形式。今天这
- 医学影像07年毕业 06年实习期间开始接触网络,06年9月份开始网络创业,放弃医学,走上了这个没有尽头的创业之路!同学们可能在在医院上班的时
- 如果你做站的热情未减,渴望成功,请看这篇文章! ——献给立志于在互联网获得发展的新人阅读4个月前在落伍发个建站经验的帖子,一帖就升
- 本文将为大家介绍SOFTETHER服务器Linux版的环境要求,安装方法,启动方法,以及运营/管理方法。1)工作环境要求Linux版Soft
- URL优化的重点就是把内容放在权重高的页面上,以下是各级目录的权重比较。1)目录的权重虽然搜索蜘蛛会捉取3级目录及以上的页面,但是一级目录的
- 11月13日消息,据国外媒体报道,苹果周四表示,2010年将在全球新开40-50家专卖店,其中上海将新增2家。苹果表示,为了将苹果产品推广给
- Windows2003服务器安装及设置教程——组件安全篇 卸载并删除WScript组件WScript.Shell可以调用系统内核运
- 中国领先的社区平台与服务提供商康盛创想(Comsenz)旗下核心产品Discuz!新版正式发布。全新推出的Discuz! 7.2版本从用户注
- 从Discuz!官方了解到,目前QQ互联服务已经全面开放,无任何站点规模以及日发帖限制,使用Discuz!X2的站点可通过Discuz!云平
- 每个站长在建站之初,都很明确自己网站的定位及网站的目标客户群,那么,在具体的推广工作中,我们该如何寻找自己的目标客户,以便更有针对性的推广自
- 百度贴吧里人气很旺,是我们宣传网站的好方法。但贴吧也是管理最严的地方,主要体现在对于发广告的采取封ID、封网址和封ip等措施。道高一尺,魔高
- 很多朋友都问到Windows下Linux安全联机的问题,下面为大家讲解一下 Windows的下PuTTY , FileZilla与Ultra
- 1、对于论坛的优化来说是比较难的,主动性太差,一般在不计用户体验的情况下点击率达到3%已经很不容易了。2、对于论坛来说,我们的目标就是尽可能
- 现在,SEO正在成为类似哈里·波特冒险式的故事,它充满理性、激情、神秘,还有点幽默。尽管传统的巫婆术士现在已被网络精曲、网络小插件所取代,被
- 先介绍一下我的站点的推广的成绩,推一把2008年11月17号上线,到目前三个月,目前的世界排名是5万,现在注册会员有2600多, 最高日发贴