您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > PHP程序编码规范1.3
PHP程序编码规范-1-PHP程序编码规范-=Beta1.3=-Anyviolationtothisguideisallowedifitenhancesreadability.所有的代码都要变成可供他人容易阅读的良好的代码书写习惯+良好的注释习惯+PhpDocumentor=程序说明书Bate1.2整理日期:2010-05-18Bate1.3整理日期:2011-02-13碎心竹参考修改自:.NET编程规范华为编程规范JavaScript程序编码规范(cloudwater译)PHP开发规范(未知出处)PHPCodingStandard(FredrikKristiansen/DBMedialab)等......PHP程序编码规范-2-前言第1章排版规则1.1缩进1.2空格规则1.2.1逻辑运算符前后必须加空格1.2.2多个参数分隔时必须加空格1.2.3语法关键字后必须加空格1.2.4字符串和变量连接规则1.3换行1.3.1较长的语句(80字符)第2章命名规范2.1变量命名2.1.1局部变量2.1.2全局变量命名2.1.3静态变量命名2.1.4引用变量和函数返回引用2.1.5临时变量命名2.1.6方法中参数命名2.2命名定义/全局常量2.3类命名2.3.1接口命名原则2.3.2Exception命名原则2.3.3类库命名2.3.4方法命名2.3.5方法/函数命名修饰2.3.6类属性命名2.3.7私有属性与私有方法命名2.3.8对象命名2.4缩写词不要全部使用大写字母2.5函数命名第3章版式规则3.1语义分隔3.2圆括号规则PHP程序编码规范-3-3.3方法/函数3.4关键字3.4.1if语句3.4.2for语句3.4.4do语句3.4.5switch语句3.4.6try语句3.4.7return语句第4章编程规范4.1数组定义规则4.2不要采用缺省方法测试非零值4.3通常避免嵌入式的赋值4.4布尔逻辑类型4.5别在对象架构函数中做实际的工作4.6switch格式4.7Continue和Break4.8?:4.9其他杂项4.9.1类定义文件中,定义体之外不得出现诸如echo、print等输出语句;4.9.2在HTML网页中尽量不要穿插PHP代码4.9.3没有含义的数字4.9.4PHP文件扩展名4.9.5总是将恒量放在等号/不等号的左边4.10SQL规则4.10.1输出网页的页面不出现SQL语句4.10.2进行SQL执行的数据必须进行有效性检测第5章注释规则5.1一般规则5.2方法/函数注释5.3类注释5.4记录所有的空语句5.5用if(0)来注释外部代码块5.6版权信息PHP程序编码规范-4-前言:为了更好的编写代码,特整理了这一份文档,在整理当中也学习巩固了不少知识,也遇到很多感到迷惑的地方,还需要Exp的增长才能明白...因为PHP的函数大小写不敏感特性,完全可以在调用库函数的时候使用自己的大小写规则调用而不会遇到任何问题。另外没有一成不变的规则,也有很多规则没有定义到的地方。很多时候可能需要自己来判断如何书写才能让读者更直观的认识程序,本着能清晰语法,而不是混交语法的书写原则就好。对于编辑环境的不同也将致程序编写规范方面的不同,比如喜欢使用可变长字符编辑器的程序员就没办法使用变量对齐赋值的方法写初始化语句,而使用mono字体的人却要长时间忍受呆板字体的侵蚀。基本上所有编码规范的排版方案都是基于定长字符编辑环境的。(ps:本人却喜欢变宽字符...)排版软件对齐效果很不好...,所以看到下面实例代码并不整齐也就不奇怪了。本pdf大部分用Verdana字体书写,使用SciTe输出的HTML程序格式字体。代码对齐地方使用AnonymousePro字体演示。为什么整理这个规范:对于新手或者自己编程的coder应该对这个标题很感兴趣;代码写出来就好呗,为什么还要那么麻烦注意这些东西呢?对于一个人写代码,编码规范最大的好处就是可以随时帮助检查程序的语法方面的错误。理解程序意图;隐含指导你当前行的下一行或者下面程序块的大概作用。就程序员来说“除错”是一个比写代码耗费时间多得多的一项必须的运动。而编码规范可以无意间就能高效的避免很多错误的出现。相信这个说明已经很有吸引力了吧。在多人项目里面就不必说了,可能很少会有外找编码规范的,每个项目应该都有适合自己团队的编码规范。定宽字体:AnonymousProabcdefghij1234567890变宽字体:Verdanaabcdefghij1234567890PHP程序编码规范-5-第1章排版规则1.1缩进缩进对齐统一使用一种方式;只用4个空格或者只用TAB。说明:根据实际使用的环境来决定。一些编辑器自动转换TAB为4个空格的距离,但有些也会转换为8个空格。块开头对齐赋值:$book_name='';//书名$new_book_name='';//新书名$new_book_page_count=0;//新书页计数说明:一般在函数的开头把所有用到的内部变量都初始化一次,这样可以防止程序的未定义错误,并且对函数内部变量有个直观的一览。适用于定长字体。1.2空格规则空格应在以下情况时使用:跟在((左括号)后面的关键字应被一个空格隔开。while(true){函数名与左括号之间不应该有空格。这能帮助区分关键字和函数调用。functionmyfun(){所有的二元操作符,除了左括号和左方括号应用空格将其与操作数隔开。一元操作符与其操作数之间不应有空格,除非操作符是个单词,比如typeof。每个在控制部分,比如for语句中的;(分号)后须跟一个空格。for($i=0;$i10;$i++){每个,(逗号)后应跟一个空格。1.2.1逻辑运算符前后必须加空格正确$a==$b;正确$a++;$a––;错误$a==$b;$a==$b;错误$a++;$a––;备注:加一减一运算符不能加空格。PHP程序编码规范-6-1.2.2多个参数分隔时必须加空格正确$g_pro,$g_user,g_show;错误$g_pro,$g_user,$g_show;正确get_db_info($host,$user,$passwd);错误get_db_info($host,$user,$passwd);1.2.3语法关键字后必须加空格if,for,while,switch等关键字...例如:正确for($i=0;$i10;$i++)错误for($i=0;$i10;$i++)1.2.4字符串和变量连接规则字符串与变量连接使用'.'号时,必须在'.'前后加空格,使用”号自动转义变量时必须在变量前后加”{}”。正确$my_name='file_'.$var1;错误$my_name='file_'.$var1;正确$my_name=file_{$var1};错误$my_name=file_$var1;正确$my_name=$_POST['name'];错误$my_name=$_POST[name];1.3换行每行一个语句,除非这些语句有很密切的联系,否则每行只写一个语句。用空行来将逻辑相关的代码块分割开可以提高程序的可读性。相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if(!valid_ni($ni)){...//programcode}$repssn_ind=$ni;应如下书写if(!valid_ni($ni)){...//programcode}$repssn_ind=$ni;PHP程序编码规范-7-1.3.1较长的语句(80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。示例:if((tasknomax_act_task_number)&&(n7stat_stat_item_valid(stat_item))){...//programcode}for(i=0,j=0;(iBufferKeyword[word_index].word_length)&&(jNewKeyword.word_length);i++,j++){...//programcode}for(i=0,j=0;(ifirst_word_length)&&(jsecond_word_length);i++,j++){...//programcode}第2章命名规范2.1变量命名规范使用三种书写方式:Pascal命名规则将标识符的每个单词的首字母都大写。ps:类命名与类的方法命名例如:BackColorCamel命名规则标识符的首字母小写,而后面连接的单词的首字母都大写。ps:方法内部变量命名,(函数外部参数命名)例如:backColorLinuxC命名规则变量所有字母都使用小写,使用'_'作为每个词的分界。ps:函数内部变量命名变量名必须有一定的意义,并且意义准确。例如:有一个变量用于保存图书的数目,可以命名为number_of_book或者num_of_book。不建议使用i,j,n等,因为它没有意义。也不建议使用number或book,因为意义不准确。2.1.1局部变量所有变量都要预先声明,并注明其意义,在函数的首部定义所有的变量。不要使用一个声明一个;最好把每个变量的声明语句单独放到一行,并加上注释说明。所有变量按照字母排序。$current_entry;//当前选择项$level;//缩进程度$size;//表格大小尽量减少全局变量的使用。不要让局部变量覆盖全局变量。PHP程序编码规范-8-局部变量所有字母都使用小写,使用'_'作为每个词的分界。实参并不认为是局部变量。理由:通过这一途径,代码中变量的作用域是清晰的。所有的变量在代码中都看起来不同,容易辨认。例如:functionHandleError($errorNumber){$error=osErr($errorNumber);$time_of_error=osErr-GetTimeOfError();$error_processor=osErr-GetErrorProcessor();}变量名字应该使用名词或者形容词+名词的方式。如$value,$new_value。2.1.2全局变量命名全局变量使用g前缀。例:global$gLog;global&$rgLog;2.1.3静态变量命名静态变量使用s前缀,如:$s_value。2.1.4引用变量和函数返回引用引用必须带‘r’前缀理由:使得类型不同的变量容易辨认,它可以确定哪个方法返回可更改对象,哪个方法返回不可更改对象。如:$r_var。function&rStatus(){};ps:关于用返回引用来加快运行速度一说,有文章指出并不明显。2.1.5临时变量命名不要将在循环中频繁使用的临时变量如$i,$j等用于其它用途。2.1.6方法中参数命名参数的名字使用Camel命名方法(首字母小写),在首字符后的所有字都按照类命名规则首字符大写。参数的名字应该是描述性的,参数的名字应该具有自描述性,也就是说参数的名称可以描述参数在大多数情况下的含义,参数的类型也是可以从参数的名字推断出来的。参数的名字是基于参数的含义而不是参数的类型。理由:PHP程序编码规范-9-可以区分方法中的一般变量。你可以使用与类名相似的名称而不至于产生重名冲突。例如:classNameOneTwo{functionStartYourEngines(&$rSomeEngine,&$rAnotherEngine);}2.2命名定义/全局常量全局常量所有字母都大写,用'_'分隔每个单词。理由:这是命名全局常量的传统。你要注意不要与其它的定义相冲突。例如:define(HELLO_WORLD,Helloworld!);2.3类命名用Pascal命名规则,也就是用英文的大小写来分隔单词,包括首个单词,所有单词的首字母大写,如PageManager;尽量谨慎的使用缩写,不要用下划线作类名单词连接符。在类中,方
本文标题:PHP程序编码规范1.3
链接地址:https://www.777doc.com/doc-4382334 .html