zoukankan      html  css  js  c++  java
  • (转)详解PHP编码规范文档

    使用驼峰结构命名,即以小写字母开头,从第二个单词开始,每个单词的第一个字母大写。

    大半天时间整理的PHP编码规范…

    一、命名规范:

    1. 常量的命名

    1) 字母,全部大写,使用“_” 分隔单词。

    如:DEFINE(“PHP_DEMO_PRINT”,”hEllo world”);

    2. 变量的命名

    1) 使用驼峰结构命名,即以小写字母开头,从第二个单词开始,每个单词的第一个字母大写。

    如:$getElement=”myodbc”;

    2) 全局变量以“g_”开头,非全局变量不要以“g_”开头

    如:$g_i;

    3) 所有的“临时”变量使用完毕后必须unset。

    4) 不允许出现字母完全相同,仅大小写不同的命名。

    5) 不允许在命名的结尾使用下划线。

    6) 不要出现单字母的变量,如i,j,k(只有在控制循环数时且循环代码条数在3条以内,才可以考虑使用)

    7) 变量名中不能出现数字。

    8) 变量名最好能表示出是数值型还是字符串型变量。

    如:$myCount_i表示数值型变量,$myString_s表示字符串。

    9) 如果有计算限定符,把限定词加到名字的最后。

    如:$calTimeStart 、 $calTimeEnd.

    3. 函数的命名

    1) 函数名全部小写,单词之间可以使用下划线。

    2) 存取对象的函数名使用 set_xxx() 和get_xxx() 形式。

    3) 布尔类型的函数名可以使用 isxxx() 形式。

    4) 函数名中不能出现数字。

    4. 类命名

    1) 类名用第一个字母大写的英文正常语序准确描述类的含义。如:Employee。

    2) 类的方法命名规则与函数的命名规则一致。

    3) 类的属性名采用全字母小写。

    5. 文件的命名

    1) 文件名字符全部采用小写

    2) 文件名称要能反映出其内容及功能。

    如:储存有类的文件,name.class.php;存有函数的文件可采用name.func.php或name.inc.php来命名;配置文件,name.cfg.php或者config.inc.php 。

    二、注释规范:

    1. 变量的注释

    1) 变量的同行后空一格使用双斜线注释。

    如:$myDemo = ’a demo’; //这是行内注释

    2. 函数与函数体的注释

    /*

    @作者:xxxx、bbb

    */

    //描述函数的功能和返回值和引用方法

    function  ff(aaa, bbb)  {

    ……

    // 普通夹杂在代码里的单行注释

    ……

    return false;

    }

    3. 文件的注释

    1) 文件功能、创建人信息、时间。

    2) 已知的Bug。当然最好是修正所有错误,但可能暂时还没有办法修正错误,或暂时没有精力去修改

    3) 开发和维护文件的历史列表。记录每一次修改的作者、日期、修改的内容

    4) 对主要的算法必须加以解释说明,主要的流程必须给出引导性的说明

    5) 标准格式

    /**

    * @description 描述类的功能、用途、现存BUG,设计方法。

    * @author 作者姓名

    * @version 最后修改日期(日期格式建议采用:年-月-日格式,例如:2008-04-05)

    */

    如果对已经版本化的类进行了修改,需要按照如下格式为每一次修改附加修改历史记录: 

    * @modify

    * 修改人 + 修改日期(日期格式建议采用:年-月-日格式,例如:2008-04-05)

    * 修改说明

    三、代码书写风格

    1. 总原则

    1) 一行代码尽量简短,并且保证一行代码只做一件事。

    2) 使用圆括号来界定操作的顺序。不要让别人判断复杂的操作优先级。

    3) 合理使用空行,划分逻辑处理。

    4) 代码缩进使用TAB键(设定四个空格)。

    5) 建议遵循三十秒原则。如果另一个程序员无法在三十秒之内了解你的函数做了什么,如何做以及为什么要这样做,那就说明你的代码是难于维护的,必须得到提高。

    2. 控制结构

    1) If 规范: 

    1. else 后面的if,另起一行 

    2. 把对比常量,放在等式左边 

    3. 分支要加上注释,注释前面加一个(TAB)缩进

    if (6 == $errorNum)  { //注释1

    ..

    }  else  {

    if (5 == $num)  { //注释2

    }  else  {

    }

    }

    2) Switch规范: 

    switch (…) {

    case 1: //分支1注释

    …   

    // 这里没有break,直接转到下个case,须要加注释   

    case 2:  {  //分支2注释  

    $v = get_week_number(); // 创立变量,在{}之中   

    …  

    }    

    break;    

    default:  

    }

    3) For规范: 

    For($i=1;$i<=3;$i++)  {

    ……

    }

    4) While 规范: 

    While ($i<=5) {

    ….

    }

    5) Foreach  规范: 

    Foreach ($arr  as  $v => $k)  {

    ….

    }

    四、代码书写风格

    1. 使用$row[‘id’]方式取数据,不要使用$row[id]方式。

    2. 纯字符串使用单引号包含。

    3. 删除未使用的变量

    4. 执行for循环之前确定最大循环数,不要每循环一次都计算最大值。

    5. 循环内部不要声明变量,尤其是大变量:对象(语言通用)。

    6. 执行字符串替换前用strpos()函数判断是否存在后再执行替换函数。

    7. 用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环

    8. str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍

    9. 当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的

    10. 用@屏蔽错误消息的做法非常低效。

  • 相关阅读:
    PAT 1006 Sign In and Sign Out
    PAT 1004. Counting Leaves
    JavaEE开发环境安装
    NoSql数据库探讨
    maven的配置
    VMWARE 下使用 32位 Ubuntu Linux ,不能给它分配超过3.5G 内存?
    XCODE 4.3 WITH NO GCC?
    在苹果虚拟机上跑 ROR —— Ruby on Rails On Vmware OSX 10.7.3
    推荐一首让人疯狂的好歌《Pumped Up Kicks》。好吧,顺便测下博客园可以写点无关技术的帖子吗?
    RUBY元编程学习之”编写你的第一种领域专属语言“
  • 原文地址:https://www.cnblogs.com/fxlttkl/p/7271453.html
Copyright © 2011-2022 走看看