“Protoss/规范/代码规范”的版本间的差异

来自Blueidea
跳转至: 导航搜索
函数调用的书写规范
第1行: 第1行:
写在前面:
 
本规则基于PEAR的代码书写规范,但是又有些许改进,在不同的地方会指出。<br/>
 
== 缩进规则与行书写规范 ==
 
所有代码中,均使用4个空格作为缩进标准,不允许使用制表符(tab)。<br/>
 
这样做的好处是:不管什么系统或者编辑器下看,代码都是整齐的。在使用SVN、CVS等工具或者查看diff时,不会对编码和阅读人员带来困难。<br/>
 
<br/>
 
如果你使用的是的Emacs编辑器,请设置“indent-tabs-mode”。<br/>
 
如果你使用的是大蛇所钟爱的Vim(GVim)的话,请在_vimrc中作如下设置:<br/>
 
set expandtab<br/>
 
set shiftwidth=4<br/>
 
set softtabstop=4<br/>
 
set tabstop=4<br/>
 
<br/>
 
所有的[[http://cn.php.net/manual/en/language.operators.php 运算符(包括算术运算符、赋值运算符、位运算符、比较运算符等等)]]的左边和右边都需要有一个空格。
 
== 控制结构书写规范 ==
 
Control Structures,多译作控制结构,可以参考[[http://cn.php.net/manual/en/language.control-structures.php PHP手册]]。<br/>
 
其实说白了就是if, for, while, switch这些啦。<br/>
 
=== 条件简单时 ===
 
<source lang="php">
 
<?php
 
 
if ((condition1) || (condition2)) {
 
    action1;
 
} elseif ((condition3) && (condition4)) {
 
    action2;
 
} else {
 
    defaultaction;
 
}
 
</source>
 
注意上面这段代码中,if与“(”之间有个空格,两个条件与符号间有空格。“)”与“{”之间有空格,<b>并且是在同一行</b>。<br/>
 
else和elseif的前后大括号“}”和“{”都在同一行。<br/>
 
<br/>
 
如果是switch的话,写成这样:
 
<source lang="php">
 
<?php
 
 
switch (condition) {
 
case 1:
 
    action1;
 
    break;
 
 
case 2:
 
    action2;
 
    break;
 
 
default:
 
    defaultaction;
 
    break;
 
}
 
</source>
 
注意case和switch的缩进级别是一致的。<br/>
 
=== 条件复杂时 ===
 
这种写法可以强调第一个条件,同时也属于中规中矩的写法。
 
<source lang="php">
 
<?php
 
 
if (($condition1
 
    || $condition2)
 
    && $condition3
 
    && $condition4
 
) {
 
    //code here
 
}
 
</source>
 
下面这种写法是将多个条件对齐。好处显而易见,这样可以方便的一眼扫完所有条件,而且结构清晰。
 
<source lang="php">
 
<?php
 
 
if (  $condition1
 
    || $condition2
 
    || $condition3
 
) {
 
    //code here
 
}
 
</source>
 
<source lang="php">
 
<?php
 
 
$is_foo = ($condition1 || $condition2);
 
$is_bar = ($condition3 && $condtion4);
 
if ($is_foo && $is_bar) {
 
    // ....
 
}
 
</source>
 
=== 三元运算符 ===
 
<source lang="php">
 
<?php
 
 
$a = $condition1 && $condition2
 
    ? $foo : $bar;
 
 
$b = $condition3 && $condition4
 
    ? $foo_man_this_is_too_long_what_should_i_do
 
    : $bar;
 
</source>
 
 
 
== 函数调用的书写规范 ==
 
== 函数调用的书写规范 ==
 +
=== 单行调用函数 ===
 
函数调用时,函数名与“(”之间不能有空格;中间的第个参数与其之前的参数后的“,”之间要有一个空格,但是参数自己后面的“,”之间不能有空格;最后一个参数与“)”之间不能有空格。
 
函数调用时,函数名与“(”之间不能有空格;中间的第个参数与其之前的参数后的“,”之间要有一个空格,但是参数自己后面的“,”之间不能有空格;最后一个参数与“)”之间不能有空格。
 
<source lang="php">
 
<source lang="php">
第115行: 第20行:
 
$this->callSomeFunction('3',          'verrrrrrylong', true);
 
$this->callSomeFunction('3',          'verrrrrrylong', true);
 
</source>
 
</source>
 +
=== 多行书写格式 ===
 +
当一行书写超过<b>80</b>个字节的时候,请分开成多行来书写,如下:
 +
<source lang="php">
 +
<?php
  
== 定义类的书写规范 ==
+
$this->someObject->subObject->callThisFunctionWithALongName(
== 定义函数的书写规范 ==
+
    $parameterOne, $parameterTwo,
== 数组的书写规范 ==
+
    $aVeryLongParameterThree
== 注释的书写规范 ==
+
);
== 载入文件的书写规范 ==
+
</source>
== 文件头部注释书写规范 ==
+
因为不是每个人都有很宽的显示器的,一般来说,如果看代码需要横向滚屏的话,会很不爽,因此需要分多行书写。为了方便阅读,一些很长的变量名(所以大蛇不建议你用很长的变量名)最好另起一行,同时几个参数写在同一行也是允许的,但是相对所属的调用函数这一级前面要加4个空格的缩进。<br/>
== 文件的相关规范 ==
+
另外,要记得行末的“,”要跟着它前面的参数,且中间不能有空格。

2010-08-18T18:07:56的版本

函数调用的书写规范

单行调用函数

函数调用时,函数名与“(”之间不能有空格;中间的第个参数与其之前的参数后的“,”之间要有一个空格,但是参数自己后面的“,”之间不能有空格;最后一个参数与“)”之间不能有空格。

<?php
$var = foo($bar, $baz, $quux);

如上面的代码所表述的,“=”的两边都需要有空格,但是如果情况特殊,上下文中都是类似的函数调用操作时,应当以“=”为参照物来对齐,如下:

<?php
$short         = foo($bar);
$long_variable = foo($baz);

为了增加可读性,我们也可以在函数/类的方法调用时,写成这样:

<?php
 
$this->callSomeFunction('param1',     'second',        true);
$this->callSomeFunction('parameter2', 'third',         false);
$this->callSomeFunction('3',          'verrrrrrylong', true);

多行书写格式

当一行书写超过80个字节的时候,请分开成多行来书写,如下:

<?php
 
$this->someObject->subObject->callThisFunctionWithALongName(
    $parameterOne, $parameterTwo,
    $aVeryLongParameterThree
);

因为不是每个人都有很宽的显示器的,一般来说,如果看代码需要横向滚屏的话,会很不爽,因此需要分多行书写。为了方便阅读,一些很长的变量名(所以大蛇不建议你用很长的变量名)最好另起一行,同时几个参数写在同一行也是允许的,但是相对所属的调用函数这一级前面要加4个空格的缩进。
另外,要记得行末的“,”要跟着它前面的参数,且中间不能有空格。