代码书写规范

1、代码缩进

在书写代码的时候,必须注意代码的缩进规则,我们规定代码缩进规则如下:
在缩进中使用tab缩进,不要是空格缩进
例子:

    for ( $i=0;$i<$count;$i++ ) {
        echo 'test';
    }

2、括号的使用

在程序中进行结构控制代码编写,如if、for、while、switch等结构,大括号传统的有两种书写习惯,分别如下:
a.{ 直接跟在控制语句之后,不换行,如:

    for ( $i=0;$i<$count;$i++ ) {
        echo 'test';
    }

b.{ 在控制语句下一行,如:

    for ( $i=0;$<$count;$i++ )
    {
        echo 'test';
    }

其中,a是PEAR建议的方式,但是从实际书写中来讲,这并不影响程序的规范和影响用phpdoc实现文档,所以可以根据个人习惯来采用上面的两种方式,但是要求在同一个程序中,只使用其中一种,以免造成阅读的不方便。

3、嵌入式赋值

避免嵌入式复制,例如:

if($a == get_user_info($uid)){
    echo $a;
}

while ( $a != ( $c = getchar() ) ) {
    ...
}

4、if else swith for while等书写

对于控制结构的书写遵循以下规则:
  a.在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:if ( 6 == $errorNum ) ,因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要注意;
  b.switch结构中必须要有default块;
  c.在 for 和 wiile 的循环使用中,要警惕 continue 、 break 的使用,避免产生类似 goto 的问题;

5、每行只有一条语句

切记不要在同一行内写多条语句。
错误的:

$foo = 'this'; $bar = 'that'; $bat = str_replace($foo, $bar, $bag);

正确的:

$foo = 'this';
$bar = 'that';
$bat = str_replace($foo, $bar, $bag);

6、字符串

字符串使用单引号引起来,当字符串中有变量时使用双引号,并且使用大括号将变量包起来。 另外,当字符串中有单引号时,也应该使用双引号,这样就不用使用转义符。

错误的:

"My String"                 // no variable parsing, so no use for double quotes
"My string $foo"                // needs braces
'SELECT foo FROM bar WHERE baz = \'bag\''   // ugly

正确的:

'My String'
"My string {$foo}"
"SELECT foo FROM bar WHERE baz = 'bag'"

7、段标记

使用 PHP 的完整标记,防止服务器不支持短标记( short_open_tag )参数。

错误的:

<? echo $foo; ?>
<?=$foo?>

正确的:

<?php echo $foo; ?>

8、PHP错误

行代码时不应该出现任何错误信息,并不是把警告和提示信息关掉来满足这一点。 例如,绝不要直接访问一个你没设置过的变量(例如,$_POST 数组), 你应该先使用 isset() 函数判断下。

确保你的开发环境对所有人都开启了错误报告,PHP 环境的 display_errors 参数也开启了, 你可以通过下面的代码来检查:

if (ini_get('display_errors') == 1)
{
    exit "Enabled";
}

有些服务器上 display_errors 参数可能是禁用的,而且你没有权限修改 php.ini 文件, 你可以使用下面的方法来启用它:

ini_set('display_errors', 1);

注解

使用 ini_set() 函数在运行时设置 display_errors 参数和通过 php.ini 配置文件来设置是不一样的,换句话说,当出现致命错误(fatal errors)时,这种方法没用。

9、常量

常量遵循和变量一样的命名规则,除了它需要全部大写。尽量使用 CodeIgniter 已经定义好的常量, 如:SLASH、LD、RD、PATH_CACHE 等。

错误的:

myConstant  // missing underscore separator and not fully uppercase
N       // no single-letter constants
S_C_VER     // not descriptive
$str = str_replace('{foo}', 'bar', $str);   // should use LD and RD constants

正确的:

MY_CONSTANT
NEWLINE
SUPER_CLASS_VERSION
$str = str_replace(LD.'foo'.RD, 'bar', $str);
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执刀人的工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值