当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP 编码规范-编程惯例

PHP
PHP 开发环境的选择、建立及使用(5)
PHP 开发环境的选择、建立及使用(6)
PHP 开发环境的选择、建立及使用(7)
PHP 开发环境的选择、建立及使用(8)
PHP 开发环境的选择、建立及使用(9)
Win2003下APACHE PHP5 MYSQL4 PHPMYADMIN 的简易安装配置
PHP新手上路(八) 文件上传
PHP新手上路(九) 投票系统
PHP新手上路(十) 简易banner动态更替
PHP新手上路(十一) 数据库链接
PHP新手上路(十二)使用PHP来操作Oracle数据库
PHP新手上路(十三)PHP资源
PHP新手上路(十四) 其他杂项
session全教程(一)
session全教程(二)
session全教程(三)
PHP编码规范
第十五节--Zend引擎的发展 -- Classes and Objects in PHP5 [15]
第十四节--命名空间 -- Classes and Objects in PHP5 [14]
第十二节--类的自动加载 -- Classes and Objects in PHP5 [12]

PHP 编码规范-编程惯例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 51 ::
收藏到网摘: n/a

9.1 常量

位于for循环中作为计数器值的数字常量,除了-1,0和1之外,不应被直接写入代码。


9.2 变量赋值

避免在一个语句中给多个变量赋相同的值。它很难读懂。例如:
$fooBar.fChar = $barFoo.lchar = 'c'; // 错误

不要将赋值运算符用在容易与相等关系运算符混淆的地方。例如:
if ($c++ = $d++) { // 错误
  ...
}

应该写成
if (($c++ = $d++) != 0) {
  ...
}

不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。例如:
$d = ($a = $b + $c) + $r; // 错误

应该写成
$a = $b + $c;
$d = $a + $r;

9.3.1 圆括号

一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。
if ($a == $b && $c == $d) // 错误
if (($a == $b) && ($c == $d)) // 正确
9.3 大括号

在三种主要的大括号放置规则中,有两种是可以接受的,如下的第一种是最好的:
将大括号放置在关键词下方的同列处:
if (condition)
{
  ...

  while (condition)
  {
    ... 
  }
}
传统的UNIX的括号规则是,首括号与关键词同行,尾括号与关键字同列:
if (condition) {

  ...

  while (condition) {

    ...

  }
}
引起剧烈争论的非原则的问题可通过折衷的办法解决,两种方法任意一种都是可以接受的,然而对于大多数人来说更喜欢第一种。原因就是心理研究学习范畴的东西了。
对于更喜欢第一种还有着更多的原因。如果您使用的字符编辑器支持括号匹配功能的话(例如vi),最重要的就是有一个好的样式。为什么?我们说当你有一大块的程序而且想知道这一大块程序是在哪儿结束的话。你先移到开始的括号,按下按钮编辑器就会找到与之对应的结束括号,例如:

if (veryLongCondition && secondVeryLongCondition)
{
  ...
}
else if (...)
{
  ...
}
从一个程序块移动到另一个程序块只需要用光标和你的括号匹配键就可以了,不需找匹配的括号。
9.3.3 返回值

设法让你的程序结构符合目的。例如:
if (booleanExpression) {
  return true;
} else {
  return false;
}

应该代之以如下方法:
return booleanExpression;

类似地:
if (condition) {
  return x;
}
return y;

应该写做:
return (condition ? x : y);
9.3.4 运算符"?"前的表达式

如果一个包含二元运算符的表达式出现在三元运算符" ? : "的"?"之前,那么应该给表达式添上一对圆括号。例如:
(x >= 0) ? x : -x;

9.3.5 特殊注释

在注释中使用XXX来标识某些未实现(bogus)的但可以工作(works)的内容。用FIXME来标识某些假的和错误的内容。