集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > PHP >

成都PHP培训:小白须知丨PHP开发规范

发布者: 达内PHP培训     浏览次数:     发布时间:2017-10-12 10:24:16

标准化不是特殊的个人风格,它让程序员可以了解任何代码,弄清程序的状况;新人可以很快的适应环境;防止新接触php的人一次次的犯同样的错误;在一致的开发环境下,可以减少人们犯...

  成都PHP培训:小白须知丨PHP开发规范

  标准化不是特殊的个人风格,它让程序员可以了解任何代码,弄清程序的状况;新人可以很快的适应环境;防止新接触php的人一次次的犯同样的错误;在一致的开发环境下,可以减少人们犯错的机会。

  一、命名定义篇

  局部变量命名

  使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:

  $repeatCount = '';

  $delUserSql = '';

  全局常量命名

  使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词,例:

  define( 'WEBSITE_NAME', '名称' );

  define( 'WEBSITE_URL', '地址' )

  数组变量命名

  使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,以字符串Array为后缀,例:

  $scopeArray = array();

  $bookIdArray = array();

  静态变量命名

  使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,以字符串Static为后缀,例:

  function getDirectoryFile()

  {

  static $fileArrayStatic = '';

  static

  $fileNumStatic = '';

  ...

  }

  对象变量命名

  使用类名称为变量前缀,所有字母都使用大写,以字符串_OBJECT为后缀,例:

  $USERACCOUNT_OBJECT = new UserAccount();

  $PAINTINGORDER_OBJECT = new

  PaintingOrder();

  类命名

  使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用大写,不使用下划线,例:

  class UserAccount

  {

  ...

  }

  class PaintingOrder

  {

  ...

  }

  方法命名

  使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:

  class UserAccount

  {

  function isAccountOk()

  {

  ...

  }

  function addAccount()

  {

  ...

  }

  }

  方法中参数命名

  使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:

  class UserAccount

  {

  function isAccountOk( $accountName )

  {

  $this->accountName = $accountName;

  ...

  }

  function addAccount( $inputDataArray )

  {

  $this->inputArray =

  $inputDataArray;

  ...

  }

  var $accuntName = '';

  var $inputArray = '';

  }

  类属性命名

  使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母

  使用大写,不使用下划线,对于类属性为某个对象变量,则以字符串Object为后缀,例:

  class UserAccount

  {

  function IsAccountOk()

  {

  ...

  }

  function AddAccount()

  {

  ...

  }

  var $tableName = '';

  var $databaseObject = '';

  }

  二、语法书写篇

  大括号{}规则

  将大括号放置在关键词下方的同列处,例:

  if ( $condition )

  {

  ...

  }

  不使用此种方式:

  if ( $condition ) {

  ...

  }

  代码缩进规则

  使用制表符缩进(TAB键)或四个空格。如果缩进层数大于四的时候,请重新设计该项业务逻辑的算法。

  小括号()规则

  不要把小括号和关键词、方法名、方法参数紧贴在一起,要用一个空格分隔,例:

  if ( $condition )

  {

  ...

  }

  function addAccount( $inputDataArray )

  {

  ...

  }

  由于小括号与关键词等紧贴容易被看成是一体,因此不要使用以下方式,例:

  if ($condition) {

  ...

  }

  function addAccount($inputDataArray)

  {

  ...

  }

  if .. else ... 规则

  通常最好有一个else块以用于处理未处理到的或未知的其他情况,即使条件处理语句只有一个也必须使用大括号{},例:

  if ( $condition1 )

  {

  ...

  }

  else if ( $condition2

  )

  {

  ...

  ...

  }

  else

  {

  ...

  }

  尽可能避免以下使用方式,例:

  if ( $condition1 )

  ...

  else

  ...

  switch规则

  每个case块结束处必须加上break,而default总应该存在处理未知情况,例:

  switch( $condition )

  {

  case $value1:

  ...

  break;

  case

  $value2:

  ...

  break;

  default:

  ...

  break;

  }

  声明定位规则

  声明代码块需要对齐,且初次使用变量时需要初始化,例:

  var $tableName = '';

  var $databaseObject = '';

  不使用以下方式,例:

  var $tableName;

  var $accuntName = '';

  var $databaseObject = '';

  三、其它说明篇

  所有类方法必须有返回值,除结果简单外返回true或者false之外,其它方法应返回不同的值

  以交作流程进一步处理。

  html的form表单统一不设置submit按钮的名称属性(name)。

  html的form表单各个元素名称与数据库字段保持一致。

  每行一个语句。

  不要采用缺省方法测试非零值,必须显式测试,例:

  if ( false != $this->IsAccountOk()

  )

  {

  ...

  }

  else

  {

  ...

  }

  不要使用以下方式,例:

  if ( $this->IsAccountOk()

  )

  {

  ...

  }

  else

  {

  ...

  }

  不要使用三元逻辑符 ? :,但对变量的赋值除外,例:

  $_GET['act'] = !empty( $_GET['act'] ) ? $_GET['act'] : 'v_login';

  统一使用,禁止使用格式。

  对于get、post、session类型变量,必须使用$_GET、$_POST、$_SESSION方式定义和调用。

  尽可能使用单引号''而不是双引号''。

  使用完毕后的数组变量、对象变量、查询集合必须马上使用unset()、free_result()释放资源。

  一个php文件只能包含一个类定义编码,以类名称作为文件名称。

  php文件中绝不能出现html语句,html文件中尽可能避免出现php语句。

  html文件必须通过w3c的html4检测认证(http://validator.w3.org/

  )。

  如果发觉您在程序中的命名只有少量能和其对应事物相匹配的话,请重新设计系统。

  在为类命名前首先要知道它是什么。如果通过类名提供的线索,您还是想不起这个类是什么的话,

  那么您的设计是做得不够好。

  超过三个单词组成的混合名是容易造成系统各个实体间的混淆,请重新设计类。

  通常每个方法只执行一项逻辑动作事务,所以对它们的命名应该清楚的说明它们是做什么的:用checkForErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。

  这么做使功能和数据成为更可区分的物体。

  四、程序注释篇

  类的注释

  /*

  * Purpose:

  * 作为通用接口访问数据库的类

  * Class Name:

  * Database

  *

  Author:

  * unixdotnetphpboke@163.com

  * Modifications:

  *

  2004-08-18 09:15

  * 添加db_insert_id()方法

  * unixdotnetphpboke@163.com

  * See: 参照说明

  */

  class Database

  {

  ……

  }

  类方法的注释

  /*

  * Purpose:

  * 取得上一步数据库insert操作产生的id

  * Method Name:

  *

  getInsertId()

  * Parameter:

  * Return:

  * int

  * Author:

  * unixdotnet

  phpboke@163.com

  * Modifications:

  * 2004-08-18 09:15

  * 修改原因

  * unixdotnet phpboke@163.com

  * See: 参照说明

  */

  function getInsertId()

  {

  ...

  }

  类属性的注释

  class Database

  {

  /*

  * Purpose:

  * 连接数据库所需的用户名

  *

  Attribute Name:

  * $databaseUserName

  * Type: string

  * Author:

  *

  unixdotnet phpboke@163.com

  *

  Modifications:

  * 2004-08-18 09:15

  * 修改原因

  * unixdotnet phpboke@163.com

  * See: 参照说明

  */

  var $databaseUserName;

  ...

  }

  五、数据库应用篇

  数据库的设计必须符合三个范式(极端要求常用高速时考虑单独设置记录表除外)。

  数据库名称应该由概述项目内容的小写英文名词组成,以下划线分隔单词,

  避免跨平台时可能出现的大小写错误。

  数据表名称应该由物件对象名称的小写英文名词组成(尽可能对应系统中的业务类名称),

  以下划线分隔单词,避免跨平台时可能出现的大小写错误。

  数据表的字段应避免使用varchar、text等不定长的类型,时间信息的字段使用unix tiemstamp类型存储。

  查询数据时禁止使用*通配符避免占用资源加速处理速度,尽量避免使用临时表。

  查询数据连接多表时各资源应该使用全名称,即tableName.fieldName,而不是fieldName。

  SQL语句应尽可能符合ansi92标准,避免使用特定数据库对SQL语言的扩充特性。

  开发结束后,必须针对SQL查询语句的条件语句部分(where)添加索引,

  须匹配多个条件的应该使用聚合索引。

  索引的组成应由左至右匹配条件语句的顺序。

  严禁盲目添加索引,避免减慢数据插入的速度、增大占用空间及减慢查询速度。

  每当数据库(表)发生结构性变化时须登记保存;日常须定时(不超过三个工作日)

  备份数据库结构及其数据。

  1.

  给php变量赋值为字符串,尽量用单引号。单引号速度要快很多。

  2.

  给php变量赋值时,值中带变量,就的用双引号了,双引号能自动解析变量,方便很多。

  如$b=blue; $a="php$b"; echo $a;

  输出phpblue (单双引号各有千秋啊)

  3. html内尽量用双引号,无论多长拿到php中首尾加单引号就行,甭怕错。

  成都PHP培训哪家好,当然是成都达内培训,成都达内是一家专业的程序员培训机构,专注于网络营销课程,成都嵌入式培训,成都seo培训,成都php培训,成都java培训,成都安卓培训,成都会计实操培训,web前端开发,成都网络营销培训,成都it培训,成都编程培训,成都程序员培训等IT培训,专业的成都软件培训机构,专业师资授课,真实项目实战、零首付、低押金、名企就业,达内培训怎么样,成都PHP培训训机构www.cdtedu.com/pxkc/php/

(责任编辑:成都达内)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼段35号明宇金融广场19楼1903室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街紫东段35号明宇广场2306

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市成华区建设路10号万科钻石广场B座5楼

联系电话:15023458194

公交路线:建设路中(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

20016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56