还剩7页未读,继续阅读
文本内容:
PHP代码编写规范
一、编辑器设置
(1)使用Tab缩进,不要使用空格鉴于很多编辑器在保存文件时会自动清除用于缩进的空格,所以我们一律使用Tab键进行缩进
(2)UNIN文件格式请将编辑器设置对所有程序使用UNIX格式保存,不要使用Win32或者__c的格式例如,EditPlus里面Document-FileFor__tCR/LF-Unix对于windows格式文件,以Ctrl+M结束(vim下为^M)需要过滤掉$text=strtr$text\x0D;
二、命名设置
1、公共库名称空间TPLIB,Ten__ntPHPLibrary
2、变量命名
(1)所有字母都使用小写
(2)首字母根据变量值类型指定整数I、浮点数f、字符串s、布尔值b、数组a、对象o、资源r、混合类型m
(3)使用’_’作为每一个词的分界例如$i_age___x=10;$f_pri__=
22.5;$s_name=‘harry’;$b_flag=true;$a_pri__=array;$o_o__ect=newclass;$r_file=fopen;$m_var=array_combine$a_name$a_flag;
3、类命名
(1)使用大写字母作为词的分隔,其他的字母均使用小写,即驼峰格式
(2)名字的首字母使用大写
(3)不要使用下划线’_
(4)inte_____接口最好使用大写字母I并以Inte_____结尾例如classNameOneTwoclassNameinte_____IExampleInte_____
4、方法命名
(1)使用大写字母作为词的分隔,其他的字母均使用小写
(2)名字的首字母使用大写声明为“private”或“protected”的,使用’_’为前缀
(3)不要使用下划线’_
(4)与类命名一致的规则
(5)对象的访问器总是以“get”或“set”为前缀,当使用设计模式如单态模式(singleton)或工厂模式(factory),方法的名字应当包含模式的名字,这样容易从名字识别设计模式例如classNameOneTwo{publicfunctionDoIt{};protectfunction_HandleError{};privatefunction_SayHello{};}
5、类属性命名
(1)属性名前缀应以属性值类型指定(具体参照变量命名规则)
(2)前缀后采用与类命名一致的规则
(3)私有属性采用’_’为前缀例如classNameOneTwo{publicfunctionVarAbc{};publicfunctionErrorNumber{};public$iAge;private$_iAge;}
6、方法中参数命名
(1)参照类属性命名例如classNameOneTwo{publicfunctionVarAbc$__sg{};}
7、全局变量
(1)全局变量应该带前缀‘g’
(2)其余参照变量命名规则例如global$gi_Age;global$ga_Pri__
8、定义命名/全局常量
(1)全局常量使用’_’分割每个单词
(2)所有字母使用大写例如define‘E_ERROR_MISSING_PARA’501;
9、函数
(1)所有的字母采用小写,使用’_’分割每个单词例如functionsome_bloody_function{}
10、文件命名
三、代码层
1、大括号{}规则
(1)将大括号放置关键词__的同列处或同行,推荐放到同行例如functionsome_bloody_function{}iftrue{//code}
2、缩进/制表符规则
(1)使用制表符缩进例如functionsome_bloody_function{iftrue{//code}}
3、小括号、关键词和函数规则
(1)不要把小括号和关键词紧贴在一起,要用空格隔开它们
(2)小括号和函数名要紧贴在一起
(3)除非必要,不要在Return返回语句中使用小括号例如ifcondition{}strcmp$sHello$sEvening;return1;
4、IfThenElse格式布局if条件1{//注释}elseif条件2{//注释}else{//注释}如果你有用到elseif语句的话,通常最好有一个else块以用于处理未处理到的其他情况可以的话放一个记录信息注释在else处,即使在else没有任何的动作条件格式总是将恒量放在等号/不等号的左边,例如if6==$errorNum…一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错第二个原因是你能立刻找到数值,而不是在你的表达式的末端找到它需要一点时间来习惯这个格式,但是它确实很有用
5、Switch格式
(1)default总应该存在,它应该不被到达,然而如果到达了就会触发一个错误
(2)如果你要创立一个变量,那就把所有的代码放在块中例如switch$numPeople{case1:break;case2:break;default:break;}
6、?三元运算符
(1)把条件放在括号内以使它和其他的代码相分离
(2)如果可能的话,动作可以用简单的函数
(3)把所做的动作,“”,“:”放在不同的行,除非他们可以清楚的放在同一行例如conditionfunct1:func2;conditionlongstatement:anotherlongstatement;
7、代码块的声明
(1)声明代码块需要对齐例如$iDate=0;$irDate=NULL;$sName=‘’;$mName=NULL;
8、不要采用缺省方法测试非零值不要采用缺省值测试非零值,也就是使用ifFAIL!=f比下面的方法好iff即使FAIL可以含有0值,也就是PHP认为false的表示在某人决定用-1代替0作为失败返回值的时候,一个显式的测试就可以帮助你了就算是比较值不会变化也应该使用显式的比较;例如if!$bufsize%strlen$str应该写成if$bufsize%strlen$str==0以表示测试的数值(不是布尔)型一个经常出问题的地方就是使用strcmp来测试一个字符等式,结果永远也不会等于缺省值非零测试采用基于缺省值的做法,那么其他函数或表达式就会受到以下的限制:只能返回0表示失败,不能为/有其他的值命名以便让一个真true的返回值是绝对显然的,调用函数IsValid而不是Checkvalid
9、PHP注释与方法解析
(1)//单行注释
(2)/**多行注释…**/
(3)/***多行文档注释…**/
(4)关于文档注释的说明/***这是一个关于函数的注释…**/functionbac{}/*这不是一个文档注释,因为不是以/**开头…**/functionbac{}/**这是一个文档注释,但与函数无关,因为他没放到函数前面…**/functionbac{}e文档说明/**文件说明*@author__*@li__nseLi__nse*@version
1.0*@link*@final*/
10、在运算符之间使用空格在比较运算符(、、=、=、==、===、!=、、!==)、赋值运算符(=)、数学运算符(+、-、*、/、%)、位运算符(、|、^、~、、)、逻辑运算符(!、、||)、冒号:、问号()、字符串连接运算符(.)、字符串连接赋值运算符.=)前后,以及左括号()前(函数调用例外)、逗号()后请使用空格进行间隔例如/*Theseareallwrong.*/$i=0;/*Theseareallright.*/$i=0;/*Theseareallwrong.*/if$i
7.../*Theseareallright.*/if$i
7.../*Theseareallwrong.*/if$i7$j
8.../*Theseareallright.*/if$i7$j
8.../*Theseareallwrong.*/do_stuff$ifoo$b;/*Theseareallright.*/do_stuff$ifoo$b;/*Theseareallwrong.*/for$i=0;$i$size;$i++.../*Theseareallright.*/for$i=0;$i$size;$i++.../*Theseareallwrong.*/$i=$j$size0:1;/*Theseareallrightg.*/$i=$j$size 0 :1;
11、运算符优先级对于容易引起迷惑的表达式中不同运算符的优先级,请使用括号来区分优先级例如/*whatstheresultwhoknows.*/$bool=$i7$j8||$k==4;/*nowyoucanbe__rtainwhatImdoinghere.*/$bool=$i7$j8||$k==4。