PHP编码规范之注释和文件结构说明


Posted in PHP onJuly 09, 2010

文件结构

|??images
|??include

|??parameter

|??config

|??function
|??index
images存放图片文件,include中是系统是要引用的文件,一般在parameter中存放参数文件,config中存放配置文件,function中存放方法文件,如javascript的方法等,并按功能模块的分类,将各功能的类也放入其中
文件名
文件夹命名一般采用英文,长度一般不超过20个字符,命名采用小写字母。除特殊情况才使用中文拼音,一些常见的文件夹命名如:images(存放图形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放Javascript脚本),inc(存放include文件),link(存放友情链接),media(存放多媒体文件)等。文件名称统一用小写的英文字母、数字和下划线的组合。
块注释
块注释通常用于提供对文件,方法,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。
块注释之首应该有一个空行,用于把块注释和代码分割开来,比如:
/*
 * 这里是块注释
*/
块注释可以以/*-开头,这样indent(1)就可以将之识别为一个代码块的开始,而不会重排它。
/*-
 * 如果想被忽略,可是使用特别格式的块注释
 *
 * one
 *

two
 *

three
 */
注意:如果你不使用indent(1),就不必在代码中使用/*-,或为他人可能对你的代码运行indent(1)作让步。
单行注释
短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释。单行注释之前应该有一个空行。以下是一个代码中单行注释的例子:
if (condition) {

/* 以下代码运行的条件 */

...
}
尾端注释
极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。
以下是一个代码中尾端注释的例子:

if ($a == 2) { 
return TRUE; /* 对单一条件的说明 */ 
} else { 

return isPrime($a); /* 其余的条件 */ 
}

行末注释
注释界定符"//",可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;然而,它可以用来注释掉连续多行的代码段。以下是所有三种风格的例子:
if ($foo > 1) { 
// 第二种用法. 

... 
} 
else { 

return false; // 说明返回值的原因 
} 
//if ($bar > 1) { 
// 
//  // 第三种用法 
//  ... 
//} 
//else { 

// return false; 
//}

文档注释
文档注释描述php的类、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/**...*/之中,一个注释对应一个类或成员。该注释应位于声明之前:

/**
 * 说明这个类的一些 ...
*/
class Example { ...

注意顶层(top-level)的类是不缩进的,而其成员是缩进的。描述类的文档注释的第一行(/**)不需缩进;随后的文档注释每行都缩进1格(使星号纵向对齐)。成员,包括构造函数在内,其文档注释的第一行缩进4格,随后每行都缩进5格。
若你想给出有关类、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释(见5.1.1)或紧跟在声明后面的单行注释(见5.1.2)。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。
文档注释不能放在一个方法或构造器的定义块中,因为程序会将位于文档注释之后的第一个声明与其相关联。

PHP 相关文章推荐
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
cache_lite试用
Feb 14 PHP
php+mysql数据库查询实例
Jan 21 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
php生成mysql的数据字典
Jul 07 PHP
php fseek函数读取大文件两种方法
Oct 12 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
Feb 05 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 #PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 #PHP
PHP 函数学习简单小结
Jul 08 #PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 #PHP
PHP三层结构(上) 简单三层结构
Jul 04 #PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 #PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 #PHP
You might like
简单的过滤字符串中的HTML标记
2006/12/25 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
Webpack path与publicPath的区别详解
2018/05/03 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
python写日志文件操作类与应用示例
2019/07/01 Python
Python Json数据文件操作原理解析
2020/05/09 Python
运行Python编写的程序方法实例
2020/10/21 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
做一个有道德的人活动方案
2014/08/25 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
MySQL的索引你了解吗
2022/03/13 MySQL