PHP代码规范
                            Author: andylin & 流浪牛
第一部分:空格和tab
1.将编辑器的Tab大小和Indent Size为8个字节.
2.使用 if,for,switch,while等语句,括号如下所示,(而关键字之后最好加一个空格)。如下所示:       
       if (bSet == NULL)
       {
              ...
       }
3.关键字之后最好加一个空格。运算符之后也最好加上一个空格。包括:&& 、||、 & 、| 、== 、 !=、 for 、if、while、+、-、*、/。例如:
int i = 0; 
for (i = 0; i < N; i++)
{
       ....
}
第二部分:命名规则
4.变量命名规则:
    1):普通类型变量根据类型的在前面加上小写前缀,例如
        数组类型最好加上 arr*前缀。
        
$n*       = 0; (以tab键对齐)
        $ch*      = 0;
        $str*      = “”;
2):类的成员(包括结构体)变量加上m_的前缀。
3):类的命名用C开头代表示一个class。比如:CPointView。
4):文件的命名视其用途而命名。类的命名为类名去掉C + .php。函数文件最好将功能相近的函数集放在一起,以功能命名。
5):原则上所有的命名都是以“26个字母”+“_”+“数字”组成。不允许出现中文。
      
5.函数命名及定义方法:
    1):函数名称应根据实际用途来命名.
2):函数名称首字母和里面每个名词头必须是大写
3):每个函数必须有注释表明参数和实际用途,      
4):与类的命名区别是类以C开头,其余的命名规则一致。不过,类是一个静态的描述而函数是一个动态的实现。所以类一般是名词性较强而函数是动词性比较的强。
下面列出几个函数命名例子:
       ///
       // 函数名       : PrintArray
       // 功能描述     : 打印数组
       // 参数         : $arr ;数组名
       // 返回值       :
       ///
   4):函数的里面的变量的定义因该全部放在{}开头之内,而不是到处定义。变量定义必须整齐规范,尽可能的初始化。
5:)变量定义和代码开始之间必须空格两行,例如
      
见最后部分
       6):函数体不宜过大,避免超过一百行代码。函数功能应该单一
6.类定义及注意事项
       1):类的定义按照实际用途命名,然后需要在前面加上大写的C前缀。
       2):每个类都要实现构造和析构两个成员函数,用于初始化和资源释放。
       3):变量定义和成员函数定义要分开定义,
       4):要做到层次分明结构清晰,下面是一个例子:
见最后部分
      
第三部分:文件组织
7.文件的说明:
       每个文件开头包括(*.php)都加上文件内容说明,应该包括以下内容:
       文件名称,创建日期,功能说明,作者,最后修改日期,修改人,如下:
//
//文件名称:    file.php
//创建日期:    2006/04/19
//功能说明:    打印数组
//作    者:    andylin
//版本号:   1.0.0.1
//
8.每一个项目或者新产品都有一个Readme.txt [项目文件分布及功能说明,使用的外部连接库资源]和一个文档设计.doc(整体的说明项目的加构)。
9.文件结构的组织:./images ./index ./include ./flash 其中 ./images 存放图片文件,include中是系统要引用的重要文件,一般在./include/parameter中存放参数文件,在./include/config中存放配置文件,./include/function中存放全局的方法。在./include/class中存放类的定义与实现。./falsh存放flash文件。./style存放CSS文件。./scripts 存放比如JavaScrip脚本文件。./media存放多媒体文件。
第四部分:注释
10.单行注释用//多行注释用/* */组合。推荐使用//注释(因为/* */不允许嵌套使用,而//可以)。
11.文件修改的注释:如果文件修改了在文件的说明后面加上这些东西
       ///
       // 修改日期:        :2006/10/1
       // 修改人:          :andylin
// 版本号:            :1.0.02
       // 修改目的            :
       /*
              说明目的(例如:添加几个新的方法)
       */
///
       最后在修改的地方标上其实修改和结束修改的标志。格式为:
       //modify start + 版本号(by 作者)
              …(源代码)
       //modify end + 版本号(by 作者)
12.关于引入语句的注释:
//数据库类操作
requireonce(“./class/Db.php”);
要注意的几点:
a): 推荐使用requireonce
b): 所有的requireonce都放在最前面。文件信息之后。
第五部分:其余
13.命名空间:如果可能尽量的使用。将功能比较相似的模块放在一个名字空间中。
14.空行:空行将逻辑相关的代码段分隔开,以提高可读性。
下列情况应该总是使用两个空行:
a):一个源文件的两个片段(section)之间
b): 类声明与声明之间
c): 两个方法之间
d): 方法内的局部变量和方法的第一条语句之间
下列情况应该总是使用一个空行:
a):一个方法内的两个逻辑段之间,用以提高可读性
b):块注释或单行注释之前
第六部分:参考源代码范例
//文件名称:  CPoint.php
//创建日期:   2007/02/01
//功能说明:   关于点的操作的类
//作    者:   andylin
//版本号:    1.0.0.1
// 修改日期:          :2007/03/01
// 修改人:            :andylin
// 版本号:       :1.0.02
// 修改目的      
/*
     添加了PrintPoint方法
*/
// 版本号 + modify start (by 作者)
        
// 版本号 + modify end(by 作者)
requireonce("./math.php");
namespace Math
{
     class CPoint extends CObject
     {   
         //构造函数 (最好把构造函数和析构函数放在最前面
         public function _constructor($nx, $ny)
         {
              $x = $nx;
              $y = $ny;
         }
         //析构函数
         public function _destructor()
         {
         }
         //1.0.0.2 modefy start(by andylin)
         ///
         // 函数名       : PrintPoint
         // 功能描述     : 打印Point的x,y
         // 参数         : 如果n == 1 print x 如果 n == 2 print y 否则print x, y
         // 返回值       : 无
         ///
         //类似上面的声明,如果函数复杂应该要写,否者可以不写。比如下面的几个函数很简单就可以不写
                public function PrintPoint($n)
         {
              if ($n == 1)
              {
                   echo "x = ", x;
              }
              else if ($n == 2)
              {
                   echo "y = ", y;
              }
              else
              {
                   echo "x = ", x;
                  echo "y = ", y;
              }
         }
         //1.0.0.2 modefy end(by andylin)
         public function SetX($nx)
         {
              $this->x = $nx;
         }
         public function SetY($ny)
         {
              $this->y = $ny;
         }
         public function GetX()
         {
              return $this->x;
         }
         public function GetY()
         {
              return $this->y;
         }
         //Data Session
         private $x   = 0; //特殊的如i, j, k, x, y, n之类的可以不按命名规则。
         private $y    = 0 //否者,应当遵循。
     };
};

转载于:https://www.cnblogs.com/tiredbee/archive/2008/06/11/1217466.html

PHP代码规范[转]相关推荐

  1. Python 代码规范

    前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一.简明概述 1.编码 如无特殊情况, 文件一律使用 U ...

  2. 代码规范+设计模式落地之路

    欢迎关注方志朋的博客,回复"666"获面试宝典 | 前言 刚刚与同事开了一个分享会,笔者分享了一些了代码设计模式相关的内容. 以及复盘了一下项目中有些复杂的业务场景,为什么没有很好 ...

  3. php 代码规范 工具,PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理

    PHPStorm IDE使用CodeSniffer进行代码规范化管理 PHP_CodeSniffer是一个优秀的代码风格检测工具,定义了一系列的代码规范(通常使用官方的代码规范标准,比如PHP的PSR ...

  4. Verilog代码规范I

    Verilog代码规范I "规范"这问题 "规范"这个富含专业气息的词汇(个人感觉),其实规范这种东西,就是大家都约定熟成的东西,一旦你不遵守这个东西,专业人士 ...

  5. vim php代码规范

    vim 代码规范工具php-cs-fixer.phar (參考https://github.com/FriendsOfPHP/PHP-CS-Fixer) INSTALL curl http://get ...

  6. Scrum立会报告+燃尽图(十一月十五日总第二十三次):代码规范与技术交流

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2384 项目地址:https://git.coding.net/zhang ...

  7. Web前端开发代码规范(基础)

    一. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护. 二. HTML/CS ...

  8. iOS 代码规范总结

    前言:代码规范最终的目的是降低代码维护的成本. 代码规范的好处(网上一搜一大把):http://kdboy.iteye.com/blog/407572 一. 结构规范 1.文件夹的建立:注意创建的都是 ...

  9. 【辟谣】代码规范固然重要,但是不要再黑程序员了...

    昨晚第一次看到一侧关于程序猿代码没有规范而被枪杀的文章,开始有朋友在群里吐槽几个平时代码比较"诗意"的同事,大家也就一笑而过了. 但是,今天朋友圈突然爆发一阵转载热潮,并且还在持续 ...

  10. Python代码规范和命名规范

    http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python代码规范和命名规范 前言 Python 学习之旅,先来看看 ...

最新文章

  1. 实用知识点梳理:BGP协议、调制解调技术、路由特点、VOIP、FTP、Cookie、滑动窗口协议与自动重传请求
  2. 用SQL进行用户留存率计算
  3. LeetCode 22. 括号生成(Generate Parentheses)
  4. 大数据集群搭建之hadoop、tomcat、jdk等工具的安装(三)
  5. git提交远程报错[rejected] master - master (fetch first)
  6. div不占位置_Python爬取校花网,妈妈再也不会担心我不给她发女朋友照片了
  7. 一步一步学习hadoop(九)
  8. cad2022新功能介绍(autocad2022简体中文版)
  9. Apache下如何安装ssl证书?PHPWAMP如何开启SSL
  10. PHP时间戳与日期之间转换
  11. 如何在Java中将Excel(XLSX)转换为Word(DOCX)
  12. android中slider控件,VideoRangeSlider视频裁剪控件
  13. 【CVPR 2021】Unsupervised Multi-Source Domain Adaptation for Person Re-Identification (UMSDA)
  14. html页面如何嵌入cms,制作好的网页模板如何放入网站CMS中?
  15. Linux iio驱动学习
  16. 消息队列MQ常见面试题
  17. Word学习笔记-使用技巧
  18. Windows 10 卸载 Qt 5.9.9
  19. 筛多肽(水解,活性预测,毒性预测,过敏性预测....)
  20. JAVA零基础安装教程+环境变量配置

热门文章

  1. 用四张图说清楚Go程序调度的本质
  2. CPU占用率过高和OOM场景下如何排查问题
  3. 关于Zookeeper的几个问题
  4. Java会话技术之 —— cookie与session
  5. springboot+mybatis+mysql+dubbo整合使用
  6. 4.2WebHost配置「深入浅出ASP.NET Core系列」
  7. 小强的HTML5移动开发之路(50)——jquerymobile页面初始化过程
  8. 关于open***的实验总结
  9. Directx11教程(65) 渲染到纹理
  10. stm32f1的存储器与复位