




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PHP代码编写规范一、编辑器设置(1)使用Tab缩进,不要使用空格鉴于很多编辑器在保存文件时会自动清除用于缩进的空格,所以我们一律使用Tab键进行缩进。(2)UNIN文件格式请将编辑器设置对所有程序使用UNIX格式保存,不要使用Win32或者Mac的格式。例如,EditPlus里面Document-File Format(CR/LF)-Unix 。对于windows格式文件,以Ctrl + M结束(vim下为M),需要过滤掉:$text = strtr($text, x0D, );二、命名设置1、公共库名称空间TPLIB,Tencent PHP Library2、变量命名(1)所有字母都使用小
2、写(2)首字母根据变量值类型指定整数I、浮点数f、字符串s、布尔值b、数组a、对象o、资源r、混合类型m(3)使用_作为每一个词的分界例如:$i_age_max = 10;$f_price = 22.5;$s_name =harry;$b_flag = true;$a_price = array();$o_object = new class();$r_file = fopen();$m_var = array_combine($a_name, $a_flag);3、类命名(1)使用大写字母作为词的分隔,其他的字母均使用小写,即驼峰格式。(2)名字的首字母使用大写(3)不要使用下划线(_)(4
3、)interface接口最好使用大写字母I,并以Interface结尾例如:class NameOneTwoclass Nameinterface IExampleInterface ()4、方法命名(1)使用大写字母作为词的分隔,其他的字母均使用小写(2)名字的首字母使用大写,声明为 “private” 或 “protected” 的,使用_为前缀(3)不要使用下划线(_)(4)与类命名一致的规则(5)对象的访问器总是以 “get” 或 “set” 为前缀,当使用设计模式如 单态模式(singleton)或工厂模式(factory),方法的名字应当包含模式的名字,这样容易从名字识别设计模式。
4、例如:class NameOneTwopublic function DoIt() ;protect function _HandleError() ;private function _SayHello() ;5、类属性命名(1)属性名前缀应以属性值类型指定(具体参照变量命名规则)(2)前缀后采用与类命名一致的规则(3)私有属性采用_为前缀例如:class NameOneTwo public function VarAbc() ;public function ErrorNumber() ;public $iAge;private $_iAge;6、方法中参数命名(1)参照类属性命名例如:c
5、lass NameOneTwo public function VarAbc($sMsg) ;7、全局变量(1)全局变量应该带前缀g(2)其余参照变量命名规则例如:global $gi_Age;global $ga_Price8、 定义命名/全局常量(1)全局常量使用_分割每个单词(2)所有字母使用大写例如:define(E_ERROR_MISSING_PARA, 501);9、 函数(1)所有的字母采用小写,使用_分割每个单词例如:function some_bloody_function()10、文件命名包含文件应该以.inc.php方式命名,例如config.inc.php。单独类的文件
6、使用Classname.php方式命名,包中的类使用 PackageName/ClassName.php命名。三、代码层1、大括号规则(1)将大括号放置关键词下方的同列处或同行,推荐放到同行例如:function some_bloody_function() if (true) / code2、 缩进/制表符规则(1)使用制表符缩进例如:function some_bloody_function() if (true) /code3、小括号、关键词和函数规则(1)不要把小括号和关键词紧贴在一起,要用空格隔开它们(2)小括号和函数名要紧贴在一起(3)除非必要,不要在Return返回语句中使用小括
7、号例如:if (condition) strcmp($sHello, $sEvening);return 1;4、 If Then Else格式布局if (条件1) /注释else if (条件2) /注释else /注释如果你有用到else if语句的话,通常最好有一个else块以用于处理未处理到的其他情况。可以的话放一个记录信息注释在else处,即使在else没有任何的动作。条件格式总是将恒量放在等号/不等号的左边,例如:if ( 6 = $errorNum ) 一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错。第二个原因是你能立刻找到数值,而不是在你的表达式的末端找到它。需要一
8、点时间来习惯这个格式,但是它确实很有用。5、Switch格式(1)default总应该存在,它应该不被到达,然而如果到达了就会触发一个错误。(2)如果你要创立一个变量,那就把所有的代码放在块中。例如:switch ($numPeople) case 1:break;case 2:break;default:break;6、 ?:三元运算符(1)把条件放在括号内以使它和其他的代码相分离。(2)如果可能的话,动作可以用简单的函数。(3)把所做的动作,“?”,“:”放在不同的行,除非他们可以清楚的放在同一行。例如(condition) ? funct1() : func2();(condition)
9、? long statement: another long statement;7、 代码块的声明(1)声明代码块需要对齐。例如$iDate = 0;$irDate = NULL;$sName = ;$mName = NULL;8、 不要采用缺省方法测试非零值不要采用缺省值测试非零值,也就是使用:if (FAIL != f()比下面的方法好:if (f()即使FAIL可以含有0值,也就是PHP认为false的表示。在某人决定用-1代替0作为失败返回值的时候,一个显式的测试就可以帮助你了。就算是比较值不会变化也应该使用显式的比较;例如:if (!($bufsize % strlen($str)
10、应该写成:if ($bufsize % strlen($str) = 0)以表示测试的数值(不是布尔)型。一个经常出问题的地方就是使用strcmp来测试一个字符等式,结果永远也不会等于缺省值。非零测试采用基于缺省值的做法,那么其他函数或表达式就会受到以下的限制:只能返回0表示失败,不能为/有其他的值。命名以便让一个真(true)的返回值是绝对显然的,调用函数IsValid()而不是Checkvalid()。9、PHP注释与方法解析(1)/单行注释(2)/* * 多行注释*/(3)/* * 多行文档注释 * */(4)关于文档注释的说明/* 这是一个关于函数的注释 */function bac(
11、)/* 这不是一个文档注释,因为不是以/*开头 */function bac()/* 这是一个文档注释,但与函数无关,因为他没放到函数前面 */function bac()e) 文档说明/* 文件说明* author 作者* license License* version 1.0* link* final*/10、在运算符之间使用空格在比较运算符(、=、=、=、=、!=、!=)、赋值运算符(=)、数学运算符(+、-、*、/、%)、位运算符(&、|、)、逻辑运算符(!、&、|)、冒号(:)、问号(?)、字符串连接运算符(.)、字符串连接赋值运算符(.=)前后,以及左括号(()前(函数调用例外)
12、、逗号(,)后请使用空格进行间隔。例如: /* These are all wrong. */$i=0;/* These are all right. */$i = 0; /* These are all wrong. */if($i7) ./* These are all right. */if ($i 7) . /* These are all wrong. */if ( ($i 8) ) ./* These are all right. */if ($i 8) . /* These are all wrong. */do_stuff($i,foo,$b);/* These are all right. */do_stuff($i, foo, $b);/* These are all wrong. */for($i=0; $i$size; $i+) ./* These are all right. */for ($i = 0;$i $size;$i+) . /* These are all wrong. */$i=($j $size)?0:1;/* These are all rightg. */$i = ($j $s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物医疗技术投资与支持合同
- 服务专卖店劳动合同书
- 企业宽带租赁合同
- 专利技术咨询合同
- 建设工程居间费合同
- 股权对外转让合同
- 消防通风承包合同
- 汽车销售维修服务合同
- 04 8 列夫·托尔斯泰2024-2025学年八年级语文上册同步教学设计(河北专版)
- 甘肃畜牧工程职业技术学院《工程测试技术》2023-2024学年第二学期期末试卷
- 护理管理课件
- 暴发性心肌炎患者的处置措施
- 教育的情调读书分享
- (苏少版)综合实践一年级下册第三单元电子教案
- 2024新版(外研版三起孙有中)三年级英语上册单词带音标
- 《ISO 41001-2018 设施管理- 管理体系 要求及使用指南》专业解读与应用指导材料之16:“8运行”(雷泽佳编制-2024)
- Linux系统管理与服务器配置-基于CentOS 7(第2版) 课件 第1章CentOS Linux 7系统的安装与介绍
- 新目标英语中考一轮教材梳理复习教案
- 冀教版二年级下册科学全册教学设计及教学计划
- 综合实践项目 制作细胞模型 教学设计-2024-2025学年人教版生物七年级上册
- 青岛版二年级数学下册课程纲要
评论
0/150
提交评论