PHP编码规范(2)

来源:互联网 发布:网络电视怎么放音乐 编辑:程序博客网 时间:2024/05/20 02:56

4、字符串的使用

    字符串声明单引号与双引号的差别:

      (1)单引号中,任何变量($var)、特殊转义字符等都不会解析,因此PHP解析速度更快,转移字符仅仅支持“\‘”和“\\”这种队单引号和反斜杠本身的转义。

      (2)双引号中,变量($var)值会带入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“/$”和“{$arr['key']}”。这样虽然编程方便,但是解析会变慢。

    使用单引号的情况:

    (1)字符串为固定值,不包含特殊转义字符;

    (2)字符串不包含变量的文字;

    (3)关联数组的下表不为整型,而是字符串型。eg:$arr['key']

    (4)SQL语句,所有数据都必须加单引号,以免可能的注入漏洞和SQL错误。

  使用双引号的情况:

    (1)字符串中的变量需要替换;eg:$var = "hello, $world";

    (2)当文字中包含单引号,那么字符串就要用双引号包起来,主要针对SQL语句;

    (3)正则表达式。

注意:所有数据在插入数据库之前,均要进行addslashes()处理,以免特殊转义字符未经转义,在插入数据库的时候出现错误。 

5、命名规则

    命名规则:以最少的字母达到最容易理解的意义。

    (1)文件名:

        所有含有PHP代码的文件均已.php为扩展名,分为几类:

        *  能够被URL直接调用的程序,直接用程序名+.php的方式命名;

        * 类库程序只能被其他程序引用,而不能独立运行。其中不能包含任何流程性的、不属于任何类的代码,类文件的后缀统一为.class.php;

        * 函数库也只能被其他程序引用,而不能独立运行,其中不能包含任何流程性的、不属于任何函数的程序代码,函数文件的后缀统一为.func.php;

        * 只能被其他程序引用,而不能独立运行,其中不能包含任何函数或类代码的程序代码,文件见后缀统一为.inc.php。

    (2)目录名

      多以复数形式出现,如./templates  ./images

    另外在所有不包含普通程序(即能够被URL直接调用的程序)目录下放置1个index.html文件,内容为空白。除根目录外,几乎所有的目录都属于这一类型,因此开发者需要在所有目录全部放入空的index.html文件,以避免当http服务器的Directory容器中Options Indexes打开时,服务器文件被索引和列表。

    (3)类名

      * 类名应有面属性,杜绝一切拼音或拼音英文混杂的命名方式;

      * 类名包含字母字符,不允许使用数字和其他字符;

      * 如果类名包含多个字符,应使用驼峰式命名方式,每个单词的第一个字母必须大写,不允许连续大写。

    (4)函数和方法名

      * 函数名应具有描述性,杜绝一切拼音或拼音英文混杂的命名方式;

      * 函数名包括字母字符,不允许使用数字和其他字符;

      * 函数名首字母小写,当包含多个单词时,后面的每个单词的首字母大写;

      * 函数名应带有’get‘、‘set’等动作性描述;

      * 可以声明像函数名前有下划线的形式,表示该函数为该类的私有方法,外部不允许访问。

    (5)变量名

      * 变量名应具有描述性,杜绝一切拼音或拼音英文混杂的命名方式;

      * 变量名包括数字,字母和下划线,不允许使用其他字符。变量名最好使用项目中有据可查的英文缩写方式,尽量使用一目了然的形式;

      * 变量名以字母开头,如果包含多个单词,首字母小写,后面每个单词首字母大写;

      * 可以合理的对过长的命名缩写;

      * 必须清楚所用单词的词性,在权限相关的范围内,大都使用$allow***或$is*****形式,前者接动词,后者接形容词;

      * 除了在循环体外,其他位置允许但不提倡使用没有描述一一的字母为变量,如$i, $j。

    (6)常量名

       * 常量名应具有描述性,杜绝一切拼音或拼音英文混杂的命名方式;

       * 常量名包括数字,字母和下划线,不允许使用其他字符。变量名最好使用项目中有据可查的英文缩写方式,尽量使用一目了然的形式;

       *常量名所有字母必须大写;

       *PHP的内建值TRUE,FALSE,NULL必须大写。

6、语言结构

    (1)if / else / else if

         if结构中,前花括号必须和条件语句在同一行,后花括号单独在最后一行, 其中内容使用缩进,else 和else if 与前后两个大括号同行,左右各一个空格。

           * 首括号与关键字同行,尾括号与关键字同列;

          *  if中条件语句的圆括号前后必须有一个空格;

          * 括号内的条件语句中操作符用空格分开;

          * 允许但不鼓励elseif的写法,建议使用else if的写法;

          * 在条件语句中存在多个运算符的时候,使用括号说明优先级,避免因为运算符概念混乱造成逻辑错误;

          * 在判断条件中明确判断内容的变量类型,使用正确的类型,不允许在判断结果为TRUE的时候使用1。

    (2)switch

         * switch在条件语句的圆括号前后有一个空格;

        *  switch代码使用缩进,case内的代码也要缩进;

        *  switch结构中,break的位置视逻辑而定,与case在同一行,或另起一行,当同一个switch下的break的位置应该一致;

        * switch应当有default语句作为结束;

        * 允许但不建议使用两个或两个以上的case对应一个break。

    (3)数组声明

        * 索引不能为负数,当索引不存在,建议索引以0开始;

        * 数组中逗号后面间隔一个空格;

        * 如果元素过多要换行,在每个连续行要用缩进将开头对齐;

        * 如果使用key=>value方式,建议将数组分成多行;

     (4)类的声明

        * 开始的左大括号与类的定义为同一行;

        * 每个类有一个符合PHPDocumentor标准的文档块;

        * 类中的代码使用缩进;

        * 每个PHP文件中只有一个类

    (5)类中成员属性和变量的声明

        * 类中成员声明放到类的首部,使用合适的权限限定外部访问级别;

        * 任何变量在累加或者直接显示前进行初始化。

        * 判断一个无法确定的变量时,可以使用empty()或者isset(),而不是直接使用if($var);

        * 判断是否为数组,使用is_array();

    (6)函数的定义和使用

        * 声明函数时参数的名字和变量的命名规范一致;

       * 函数定义的左小括号,与函数名紧挨,不用空格;

        * 开始的左大括号与名称一行,中间加一个空格;

        * 如果使用具有默认值的参数,应该位于参数列表的后面;

        * 函数不管在调用还是在声明的时候,参数与参数之间都要加一个空格;

        * 检查杜绝函数其实缩进位置与结束缩进位置不同的现象;

        * 建议不要使用全局函数;

        * 在使用系统函数时,除非必要,不要使用PHP扩展模块中的函数,如果使用,也应该加入判断,这样服务器在不支持此函数的时候,也可以进行必要的处理。

7、其他规范细节

    (1)代码重用和包含调用

        * 在同一个程序中不要出现两段或更多相同或相似的代码,及时在不同的程序中,也尽量避免;

        * 代码的有效重用不仅可以减少效率的损失与资源的浪费,也有利于代码的修改和更新;

        * 重用代码的调节可以使用require和include,require在PHP程序执行之前就预先读入文件,而include则在使用include的位置才会读入。

    (2)错误报告级别

        * 在软件开发和调试阶段,请在全局文件中使用error_reporting(E_ALL),作为默认的错误报告级别,此级别最为严格,能够报告程序中所有的错误,警告和提示;

        * 在软件发布时,使用error_reporting(E_ERROR | E_WARNING |E_PARSE),作为默认的错误报告级别,以利于用户使用无谓错误提示信息。

    

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在东莞读书读不成高中怎么办 嗓子哑了怎么办土方法 小孩舌头太长太大讲话不清楚怎么办 一周岁不喝奶粉怎么办 一岁的宝宝不吃奶粉怎么办 小孩不爱吃饭怎么办吃什么药 小孩这几天不爱吃饭怎么办 宝宝这几天不爱吃饭怎么办 想看书看不进去怎么办 宝宝3岁不爱看书怎么办 4岁宝宝不爱看书怎么办 1岁宝宝不爱看书怎么办 孩子一看书就哭怎么办 我不想读大专了怎么办 一年级的小孩不爱学习怎么办 高中的孩子不爱学习怎么办 9个月宝宝肠胃不好怎么办 孩子高烧过后干呕不爱吃饭怎么办 母乳涨奶发烧了怎么办 涨奶发烧了怎么办啊 2岁宝贝不吃饭怎么办 4个月的婴儿厌食怎么办 2个月婴儿厌食怎么办 3个月宝宝厌奶怎么办 没胃口吃不下饭怎么办 小孩吃多了积食怎么办 孩子吃撑了难受怎么办 卵巢早衰月经量少怎么办 7岁孩吃饭少消瘦怎么办 宝宝3岁不吃饭怎么办 小孩吃多了吐了怎么办 6岁儿童越来越瘦怎么办 7岁儿童不吃饭怎么办 天热宝宝不好好吃饭怎么办 天热宝宝不爱吃饭怎么办 天热宝宝不想吃饭怎么办 夏天天热宝宝不爱吃饭怎么办 3岁宝宝吃饭不香怎么办 胃ca吃饭反胃没食欲怎么办 12岁儿童脸色发黄怎么办 胃饿 但是没食欲不想吃饭怎么办