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 = '') {
//函数体
}


猜你喜欢
- 有了这些理论的基础就可以分析一下ajax的具体实现了,下面就以注册过程中的检查用户名在数据库是不是存在并给用户提示这样一个ajax过程进行全
- 首先这三家公司都是很有实力、很有信誉的公司,属于技术性比较好的公司。但是三家各有优缺点:parked.com是一家伟大的公司,做得早,资源多
- 云服务器默认使用Windws 2008 中自带的IIS服务器。1、 打开Internet 服务(IIS)管理器。1) 启动左下角任务栏中的“
- 有消息透露,阿里巴巴旗下身为电子商务教育界“黄埔军校”的阿里学院,为帮助中小企业解决人才缺口问题,正
- 准备:一台电脑,VMware(VMware安装教程)一、下载系统镜像文件1.首
- 首先,谈及企业网站优化排名优化相关的问题之前,我们要对中国企业网站现状进行大致的分析.现今很多企业都有了网站,大体分如下几类较多:1.个人制
- 晚上写的,思维有点乱,没怎么整理。大家仔细看看,别拍砖啊。说到SNS,想必在CHINAZ的网友应该都比我了解的多、懂的多。我才接触1个多月S
- 关于分区一个潜在的黑客如果要攻击你的Linux服务器,他首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种
- 现在或多或少大家对于Seo就像是千百年来中国人对月亮上的嫦娥一样充满着美好的想象。其实Seo对此是否有如此神通让我们网站一夜成名?答案肯定是
- 圣何塞搜索引擎策略( SES )大会上,显现的主要趋势之一是:图像搜索这一角色越来越重要。这篇文章将会谈一点有关:图像搜索的重要性为什么会逐
- #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotte
- 在Discuz!论坛中,有时会出现flash显示为代码,而不是被解析正确显示flas * 的情况。这种情况大多出现在从其他论坛系统转换过来的
- 首先下载JDK.这里使用的是jdk-8u181-linux-x64.tar.gz下载Tomcat.这里使用的是apache-tomcat-8
- 以下是我的一些经验,希望对你有用,但你要知道,绝对的安全是没有的。这才是一个网管存在的理由。所以。未雨绸缪是件好事。但亡羊补牢也不是下策。请
- IIS的安全验证机制做得很好,我们可以用ASP的安全验证来对windows 2000的管理者密码进行在线修改。当有人登录站点时,利用Serv
- UCenter Home是Comsenz公司发布的一款SNS建站系统,目前最新版本是1.5。UCenter Home是一个可以对用户的隐私信
- 11月19日上午消息,火石软件今日发布代理商更换公告,公告中表示《水浒Q传》将结束同金山的运营合作。同时,火石软件将向畅游公司提供《水浒Q传
- Google是我最喜欢的搜索引擎,我被Google的精神而折服,被Google的文化而感染,我可以说是Google的超级粉丝之一了,今天看了
- DedeCMS是织梦团队开发的堪称国内最专业的PHP网站管理系统,它以简单、易用、高效为特色,成为了众多站长建站的首选利器,同时也受到了一致
- 很多发布商可能已经阅读了我们之前发布的有关AdSense 推介计划更新的文章。在发布这一消息以后,我们收到了很多发布商的反馈意见,在慎重考虑