当前位置:主页 > 新闻 > 春蕾手记 >
php 程序代码撰写标准规则

- 变量命名规则
变量名称完全采用小写英文字母.
字与字之间使用 _ 来连接, 例如. $green_color_value
要使用描述性的命名方式 (循环变量可以例外).
循环变量通常使用: $i, $j, $k, …等等.
计算性的变量($bug 的总数)应以被计算的变量名称($bug)后面接 _count 的格式来命名, 例如. $bug_count
全域性的变量前面应该加上 g_
存放 session 的变量前面应该加上 sess_
存放 cookie 的变量前面应该加上 cookie_
临时(temp)的变量前面应该加上 t_
由网页窗体传过来的参数和变量如果已经确认不含 SQL 特殊字符(例如 /) 前面应该加上 c_
由网页窗体传过来的函式参数如果不确认是否含 SQL 特殊字符(例如 /), 那前面应该加上 p_
由网页窗体传过来的变量如果不确认是否含 SQL 特殊字符(例如 /), 那前面应该加上 f_
其它的变量前面应该加上 v_, v2_, …等等.
为了避免视觉上的混淆, 变数前面千万不要加上 l_ 或 o_ 或 q_ .
$query 和 $result 这两个变量只能用在 SQL 的查询语法变量($query)与查询结果变量($result)
郑州网站建设

- 常数命名规则
常数名称完全采用大写英文字母.
字与字之间使用 _ 来连接, 例如. ROOT_PATH
全域性的常数前面应该加上 G_
如果内容有可能会改变(例如在管理接口提供更改设定内容值), 应改采用变量而非常数
- 函式(Functions)命名规则
函式名称完全采用小写英文字母.
字与字之间使用 _ 来连接, 例如. setup_page_breaks()
函式名称不应该超过五个有意义的英文字, 例如. setup_page_from_old_to_new() → setup_page_old_to_new()
打印功能的函式前面应该要加上 print_, 例如. print_page() 郑州网站建设
要尽量将功能有相关的函式加上相同的前置文字(可容易看出是相同群组的函式) 例如. email_, news_, … 等等.

- Classes 命名规则
要采用 FirstLetterOfWordIsCaptilized 的样式
属于 class 对象内的变量, 前面应该要加上 m_


- 档案命名规则
文件名称完全采用小写英文字母.
字与字之间使用 _ 来连接, 例如. view_new_bugs_page.php
要使用 .php 当扩展名
文件名长度必须小于 32 个字符. 这样才能兼容一些较旧的档案系统像是 Mac OS.
会被 Included 的档案在档名后面必须是 _inc.php
预设的参数档案在档名后面加上 .default 例如. config_inc.php.default
- SQL 格式
所有 SQL 的关键词必须采用大写英文字母:
      $query = "SELECT *
          FROM $g_mantis_bug_table
          WHERE id='1'";
要以 $query 这特殊变数来存放 SQL 的命令. 这样当发生错误时可以很容易找出问题的地方.
SQL 的写法要分行, 这样才能让程序代码变的容易阅读与了解.
- 一般通用格式郑州网站建设
使用 TABS 来分出层次
:
<TAB>if ( is_array( gpc_get( 'show_category', null ) ) ) {
<TAB><TAB>$f_show_category = gpc_get_string_array( 'show_category', META_FILTER_ANY );
<TAB>} else {
<TAB><TAB>$f_show_category = gpc_get_string( 'show_category', META_FILTER_ANY );
<TAB><TAB>$f_show_category = array( $f_show_category );
<TAB>}
:
在 php 程序代码前后要以 <?php ?> 这样式来撰写
:
<?php require_once( 'core.php' ) ?>
<?php auth_ensure_user_authenticated() ?>
<?php
        $f_type = gpc_get_int( 'type', -1 );
:
?>
尽量不要直接在程序代码内印出(print/echo) HTML, 除非这 HTML 很短或是在函式的回圈内1)
不要使用 EOF 这有意义的字当结构卷标(aaa EOF bbb : 以 EOF 来当判别区别资料项)2)
- 其它
不要使用 ?: 当结构卷标, 这样会造成混淆以及有可能是造成问题的潜在原因.
避免使用 magic numbers. 所使用的 magic numbers 应该只有 1 和 0 而且是出现在很容易理解的地方.
- 页面标准
版权说明应该是要放在程序代码最上方(这部分应该包含版本相关信息)
<?php
# 项目代号 - 项目名称郑州网站建设
# Copyright (C) 2002 - 2005  项目负责人 - 联络 E-Mail
# This program is distributed under the terms and conditions of the GPL <- 采用的版权方式
# See the README and LICENSE files for details
 
# --------------------------------------------------------
# --------------------------------------------------------
?>
 
例如 :
 
<?php

# --------------------------------------------------------
# --------------------------------------------------------
?>
print_ 这样的函式应该是出现在最底下3)
- 大括号和小括号
函式右边应该紧接着小括号, 例如. function() , 而不是 function () ← 函式与括号间多空了一格
系统保留字(if, while, for)右边应该先空一格再接着小括号, 例如. for (…)
数组括号与里面的索引变量间不应该出现空格, 例如. $arr['index'] 而不是 $arr[ 'index' ] ← 括号里面多了空格
使用大括号的格式请参考以下实例说明, 请采用非对齐位置格式.
      for (...) {
          blah
      }
 
      或
 
      if (...) {
          blah
      }
if … else 应该要如以下的格式:
      if (...) {
          blah1
      } else {
          blah2
      }
- 逻辑运算与判别式
NOT 这操作数(!)应该要紧接在变量前面, 不要空格, 例如. !$value
要擅用括号的好处, 特别是在复杂的逻辑表达式中, 例如. if ( ( null == $val ) && ( null == $val2 ) )
- 字符串
字符串相连之间要留空格符, 例如. 'str ' . $value . ' str2';
如果没有特殊的状况, 应该使用 ' (单引号)来取代 “ (双引号)
- 批注
以 # 这个符号来当批注开头, 而不是
//
使用 /* */ 来标注整个批注区块. 一般而言, 这只用在开发过程.
使用 @@@ 来标示简短的讯息, 这样可以留下让程序代码中可以改善想法, 所以应该在 @@@ 后面先接着自己的姓名或代号, 然后才是讯息内容. 范例如下:
:
    $t_setting_arr['relationship_bug'] = 0;
    $t_custom_fields = custom_field_get_ids(); # @@@ (thraxisp) This should really be the linked ids, but we don't know the project
    $t_custom_fields_data = array();
:
- 程序代码编辑工具应该有的特点
要能在多个档案中同时对字符串搜寻与取代功能 郑州网站建设
能直接跳到指定的行号处
对程序语法能够区分出来(函式, 变量, 保留字 能够以不同颜色标示)
能够依据 TAB 来对齐
推荐使用 Notepad++4) 或 EditPlus5) 这样的编辑工具
如果没有特殊状况, 应该要将程序代码存成 UTF-8 格式
Top