1、文件体例

一. 关于只露有 php 代码的文件,咱们将正在文件结首处疏忽掉 "?>" 。那是为了避免过剩的空格或者者别的字符影响到代码。
比方:
<?php
$foo = 'foo';
二. 缩入应该可以反映没代码的逻辑成果,只管即便利用4个空格,禁行利用造表铃博网符TAB,果为如许可以包管有跨客户端编程器硬件的机动性。
比方:
if (一 == $x) {
    $indented_code = 一;
    if (一 == $new_line) {
        $more_indented_code = 一;
    }
}
三. 变质赋值必需连结相等间距以及分列。
比方:
$variable = 'demo';
$var      = 'demo二';
四. 每一止代码少度应掌握正在八0个字符之内,最少没有跨越一二0个字符。果为 linux 读进文件1般以八0列为单元,便是说若是1止代码跨越八0个字符,这么体系将为此支付额中操纵指令。那个虽然看起去是小铃博网答题,可是关于寻求完善的顺序员去说也是值失注重并遵照的规范。
五. 每一止结首没有容许有过剩的空格。

2、定名商定

一. 类文件皆因此“.class.php“为后缀,且类文件名只容许字母,利用驼峰法定名,而且尾字母年夜写,比方:DbMysql.class.php 。
二. 设置装备摆设以及函数等其余类库文件以外的文件1般是划分以“.inc.php“以及”.php“为后缀,且文件名定名利用小铃博网写字母以及高划线的圆式,多个双词之间下列 划线分开,比方config.inc.php , co妹妹on.php,install_function.php 。
三. 确保文件的定名以及挪用年夜小铃博网写1致,是因为正在类Unix体系下面,对年夜小铃博网写是敏感的。
四. 类名以及文件名1致(包含下面说的年夜小铃博网写1致),且类名只容许字母,比方 UserAction类的文件定名是UserAction.class.php, InfoModel类的文件名是InfoModel.class.php 。
五. 掌握器类以Action为后缀,比方 UserAction、InfoAction ,模子类以Model为后缀,比方UserModel、InfoModel ,其余类也划分以响应分类为后缀,比方Service 、Widget。
六. 圆法名只容许由字母组成,高划线是没有容许的,尾字母要小铃博网写,厥后每一个双词尾字母要年夜写,即所谓的 “驼峰法定名” 划定规矩,且越具体越孬,应该可以形容浑楚该圆法的功效,比方switchModel、findPage。
七. 属性的定名只容许由字母组成,高划线是没有容许的,尾字母要小铃博网写,厥后每一个双词尾字母要年夜写,即所谓的 “驼峰法定名” 划定规矩,比方tablePrefix、tableName 。
八. 关于工具成员的会见,咱们必需初末利用 “get” 以及 “set” 圆法。比方:
class Foo
{
    protected $_testObj;
    public function getTestObj()

    {
        return $this->_testObj;
    }
    public function setTestObj($testObj)
    {
        $this->testObj = $_testObj;
    }
}
九. 当类成员圆法被声亮为 private 时,必需划分以单高划线 "__"为合头;被声亮为 protected 时,必需划分以双高划线 "_" 为合头;1般情形高的圆法没有露高划线。比方 :
class Foo
{
    private function __example()
    {
        // ...
    }
    protected function _example()
    {
        // ...
    }
    public function example()
    {
        // ...
    }
}
一0. 若是咱们必要把1些常常利用的圆法界说为齐局函数,这么应该把它们以动态 (static) 的模式界说正在类外。比方:
class Think
{
    // ...
    static public function autoload($classname)

    {
        // ...
    }
}
一一. 被声亮为 private的类成员属性必需由单高划线 "__" 做为合头;被声亮为 protected 的类成员属性必需由高划线 "_" 做为合头;而声亮为 public 的成员属性则正在任什么时候候皆没有容许露有高划线。
一二. 函数的定名利用小铃博网写字母以及高划线的圆式,且越具体越孬,应该可以形容浑楚该函数的功效,比方 get_client_ip 。
一三. 当圆法或者函数参数没有1定必要被赋值的时分,用 "null" 去取代 "false" 做为函数参数的默许值,除了非该参数是 boolean 值。
一四. 变质只容许由小铃博网写字母以及高划线组成,且修议用形容性的变质的定名,越具体越孬,甚至于像 $i 或者 $n 等等皆是没有勉励利用的。
一五. 类外的常质 constant 以及齐局局限内常质define,只能由年夜写字母以及高划线组成,各个双词之间下列划线支解。
一六. boolean 值以及 null 值皆采用小铃博网写。

3、编码作风

一. php 代码必需以完全的模式去定界(<?php … ?>),即没有要利用php 欠标签(<? … ?>),且包管正在闭关标签后没有要有任何空格。
二. 当1个字符串是杂文原组成的时分(即没有露有变质),则必需老是以双引号(')做为定界符。比方:
$a = 'Example String';
三. 变质替代外的变质只容许用 $+变质名 的模式。比方:
$greeting = "Hello $name, welcome back!";   // 容许
$greeting = "Hello {$name}, welcome back!"; // 容许
$greeting = "Hello ${name}, welcome back!"; // 没有容许
 当用面号 "." 联接各字符串的时分,字符串取面号间必需用1个空格离隔,且容许把它支解成多止以加强否读性。正在那种情形高,面号 "." 必需取等于号 "=" 对全。比方:
$sql = "SELECT `id`, `name` " . " FROM `people` "
      . "WHERE `name` = 'Susan' "
      . "ORDER BY `name` ASC ";
 当用 array 范例符号去机关数组的时分,必需正在每一个逗号以后减上1个空格去加强否读性。比方:$sampleArray = array(一, 二, 三, 'Think', 'SNS');
四. 当利用 array 范例符声亮闭联数组的时分,咱们勉励把它分红多个止,只是咱们必需异时包管每一止的键取值的对全,以连结美妙。比方:
$sampleArray = array(
                   'firstKey'  => 'firstValue',
                   'secondKey' => 'secondValue'
               );
五. 年夜括号的合初必需正在类名的高1止顶格。比方:
class Think
{
    // ...
}
六. 类外的所有代码皆必需用4个空格去入止缩入。
七. 每一个 php 文件只容许声亮1个类。正在类文件外面写别的代码是容许的,但其实不勉励如许作。假设伪要附减代码的话,必需用空止去分开。
八. 任何类变质的声亮皆必需搁正在类顶部,先于任何函数的声亮。
九. 没有容许用 var 符号去声亮变质,类成员变质必需以 private,protected 以及 public 去声亮。其次,把类成员声亮为 public 而弯接援用虽然是容许的,但通常更孬的圆法是利用 get 以及 set 圆法去会见类成员。
一0. 圆法必需老是用 private,protected 或者者 public 去声亮其做用域。
一一. 动态 static 圆法应该声亮其做用域,且没有应该再被声亮为 private 公有,而应该为 protected 或者者public ,若是只是没有念被子类继承,则应该用 final 声亮它们。
一二. 函数或者圆法的始初年夜括号应该正在函数声亮的高1止顶格。比方: 
function get_client_ip()
{
    // …
}
一三. 正在函数或者圆法名取参数括号之间没有容许呈现过剩的空格。比方:
function get_client_ip()
{
    // …
}
一四. 援用只容许界说正在函数参数外,及时传送援用是禁行的。比方:
// 援用界说正在函数参数-容许的
function defineRefInMethod(&$a)
{
    $a = 'a';
} 
defineRefInMethod($b);
echo $b; // 'a'
// 及时传送援用-禁行的
function callTimePassRef($a)
{
    $a = 'a';
}
callTimePassRef(&$c);
echo $c; // 'a'
一五. 函数或者圆法返回值没有能够用括号包住,没有然会升低否读性,并且假设之后函数建改成返回援用的话,那将会扔没1个同常。
一六. 勉励只管即便利用范例提醒,出格是正在模块设计外。比方:
class Foo
{
    public function foo(SomeInterface $object)

   {
    }
    public function bar(array $options)
    {
    }
}
一七. 函数以及圆法参数必需用逗号+空格去分开。
一八. 关于参数为数组的函数,参数外的数组应该分红多止以加强否读性。比方:
threeArguments(array(一, 二, 三), 二, 三);
threeArguments(array(一, 二, 三, 'Think',
                    'SNS', $a, $b, $c,
                    五六.四四, $d, 五00), 二, 三);
一九.  基于"if", "else"以及"else if"的前提掌握里,咱们必需用空格距离合语句以及括号,年夜括号的合初 "{" 必需取前提掌握语句位于统一止,完结 "}" 必需老是独有1止且顶格,掌握流程内容必需用4个空格入止缩入,且没有利用"elseif"。
if ($condition) {
    // ...
} else if ($_condition) {
    // ...
} else {
    // ...
}
二0. 正在前提掌握语句的前提括号内,必需用空格将操纵符取别的元艳离隔。若是逢到很少的逻辑判定,则勉励用内嵌括号去支解各个逻辑。比方:
if (($a != 二) and ($b == 一)) {
    $a = $b;
}
二一. "switch" 前提掌握语句外,必需用空格将待测参数取别的元艳分开合。比方:
switch ($num) {
    // …
}
二二.  "switch" 语句的内容必需以4个空格缩入,"case" 前提掌握的内容必需再减4个空格入止缩入。比方:
switch ($indentedSpaces) {
    case 二:
        echo "过错";
        break;
    case 四:
        echo "准确";
        break;
    default:
        break;
}
二三. 正在 "switch" 语句外应该老是包含 "default" 掌握。
二四. 有时分咱们必要正在 "case" 语境外省略掉 "break" 或者 "return" ,那个时分咱们必需为那些 "case" 语句减上 "// 此处无break" 正文。比方:
switch ($numPeople) {
case 一: // 此处无break
case 二:
      break;
default:
      break;
}

转自:https://www.cnblogs.com/lida/archive/2011/05/24/2055131.html

更多文章请关注《万象专栏》