• php编码规范
    时间:2009-07-03   作者:佚名   出处:互联网

    1。概述
    对于只包含php代码的文件,禁止使用“?>”,这不是必须的.不包含它可以阻止尾部的空白字符不经意间注入到输出流.(也要注意“<?”前面的空白字符,问题虽小但是致命的);
    重要:包含任意__HALT_COMPILER() 允许的二进制数据将阻止被从他们获得的Zend framework PHP 文件
    2。缩进:使用4个空格,而不是tab
    3。行最大长度:
    目标行长度是80个字符,事实上IE开发者目标保80列存代码;然而更长的行是可以被接受的。php每一行最大长度是120个字符;
    4。行结束:使用Unix 文版文件标准使用LF(10,0x0A)结束;
    5。编码格式:
    代码仅限使用完全格式,标准标签:
    <?php
    ?>
    6。字符:
    a) 常用单引号包括

    $a = 'Example String';

    b) 如果包含`符号,建立使用双引号

    $sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";

    c) 插入变量使用一下格式

    $greeting = "Hello $name, welcome back!";
    $greeting = "Hello {$name}, welcome back!";

    禁止使用$greeting = "Hello ${name}, welcome back!";

    7。字符连接:
    a) 使用.符号连接,其中.号前后需要空格增加可读性

    $company = 'Zend' . 'Technologies';

    b) 多行时以.号开头,与=号对齐

    $sql = "SELECT `id`, `name` FROM `people` "
          . "WHERE `name` = 'Susan' "
          . "ORDER BY `name` ASC ";

    8.数组格式:
    $sampleArray = array(1, 2, 3, 'Zend', 'Studio');

    $sampleArray = array(1, 2, 3, 'Zend', 'Studio',
              $a, $b, $c,
              56.44, $d, 500);

    $sampleArray = array('firstKey' => 'firstValue',
            'secondKey' => 'secondValue');
    9.类:
    /**
       * Documentation Block Here
       */
    class SampleClass

       // entire content of class  
       // must be indented four spaces
    }
    声明变量可见性(public,protected,private),不要使用var(用于反射机制),不能确定时使用public

    注意:类名如果是Zend_Controller_Dispatcher_Interface对应的文件名一定是Zend/Controller/Dispatcher/Interface.php,不然将出现找不到类的异常;

    严格区分大小写;

    在我们自己类定义时使用前缀Kyxz_并将类放到01kj\library\Kyxz\目录相应的文件中

    10.文件路径:

    文件路径名不能出现_且第一个字母必须大写;

    文件名路径名必须与类名一致,存在严格的对应关系;

    Zend/Controller/Front.php <----> Zend/Controller/Front.php

    11.方法:注意格式,空格,换行,对齐

    方法名使用第一个字母小写格式,如getElementById,最好是动名词格式,具有一定含义,指明其功能用途;对属性访问要严格指明get\set操作;

       抛出异常时必须添加@throws exceptionclass [description]

    12.属性:如果是protected,private一定要以_开始;如protected $_conn;

       常量属性必须全部大写

    13.流程控制语句
    a) if/elseif/else
    if ($a != 2) {
         $a = 2;
    }

    if ($a != 2) {
         $a = 2;
    } else {
         $a = 7;
    }

    if ($a != 2) {
         $a = 2;
    } elseif ($a == 3) {
         $a = 4;
    } else {
         $a = 7;
    }
    b)switch:
    switch ($numPeople) {
          case 1:
       break;
          case 2:
       break;
          default:
       break;
    }

    不能缺少default,即使没有用

    14) 数据库:如果在数据字段名中使用“_”,将会被去掉,“_”后面的字母将会被改为大写

        要求所有数据表名,字段名使用小写字母,可以添加“_”,但是数据取出后将会被转换为驼峰式

        如:字段user_name将会被转换为userName

       建议:为了简单些,都使用全小写字母,不要出现“_”

    15) images,css:必须使用相对于网站的绝对路径,以"/"开头

    命名规则:

    1) 下划线式: 常用于linux编程,标识符各字母之间使用“_”格开

    2) 驼峰式: 常用于window编程,标识符各首字母大写,看起来相驼峰一样;类名首字母大写;方法,属性首字母小写;变量常使用i,s,...开头表示整数,字符串等变量类型

    3) 比较:get_element_by_id <------->getElementById

    16) 字符串操作使用mb_str...函数(见帮助文档)

    17) 包含文件是使用require_once不要借助于__autoload()函数,效率问题

    网友留言/评论

    我要留言/评论