有一个组织叫做“php互操作性框架制定小组”,这个小组的主要目的是制定各种PHP编码规范的,下面就是我根据小组提供的建议整理的一些常用的编码规范。
PSR-1:
1、PHP代码文件必须以<?php 或<?=标签开始。
2、PHP代码必须以不带BOM的UTF-8编码。
3、类名必须遵循大驼峰命名规范。(首字母大写的驼峰命名)
4、方法名必须遵循小驼峰命名规范。(首字母小写的驼峰命名)
5、类中的常量所有字母必须大写,单词之间使用_(下划线)分割。
6、类中的属性可以使用大驼峰、小驼峰、下划线分割等,不做强制规范。
 
PRS-2:
1、代码必须使用4个空格而非tab键缩进。(使用空格而不是tab键缩进的好处在于, 避免在比较代码差异、打补丁、重阅代码以及注释时产生混淆。 并且,使用空格缩进,让对齐变得更方便。)
2、代码每行建议在80个字符之内,一定不能超过120个字符。
3、每个namespace命名空间声明语句和use声明语句块后边必须插入一个空白行,并且use必须在namespace之后。
4、类的一对花括号{}必须自成一行。
5、方法的一对花括号{}必须自成一行。
6、类的属性和方法必须添加访问修饰符(private、public、protected),abstarct和final必须声明在访问修饰符之前,而static必须声明在访问修饰符之后。
7、控制结构(if、while等结构语句)的关键字后必须要有一个空格,而调用函数或方法一定不能有。
8、控制结构的({)必须写在声明的同一行,而(})必须单成一行。
9、控制结构的左括号后和右括号前一定不能有空格。
10、所有php文件必须以一个空白行作为结束。
11、纯php代码文件必须省略最后的?>结束标签。
12、php所有的关键字必须小写,常量true、false、null也必须小写。
13、方法的参数中,每个参数后面必须要有一个空格,而前面一定不能有空格。有默认值的参数必须放在参数列表末尾。
整理完成后发现组织最早的PRS-1规范中都是一些很基础的,php程序员一般都知道,而PRS-2相对来说就很具体了,很多资深工程师在编码的时候也许会不自觉的用到,但不写出来还真不会注意。
下面就是我做的一个标准的代码:

PHP编码规范整理,很全很实用(图文版)的更多相关文章

  1. PEP8 Python 编码规范整理(转)

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

  2. python——PEP8 Python 编码规范整理

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

  3. PEP8 Python 编码规范整理(Python)

    add by zhj: 这个是豆瓣网友整理的PEP8,算是PEP8的一个简易版本,因为原PEP8内容太多,所以建议先看这篇文章,然后再看PEP8中文翻译 原文:http://www.douban.co ...

  4. python 编码规范整理

    PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不要使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号. ...

  5. .Net编码规范整理

    前言 此处只是整理并记录下.Net开发规范以便加深编码规范.一个好的编程规范可以让自己程序可读性,让自己编码更规范,分为两部分:通用规范..Net开发规范. 微软通用编程规范 明确性和一致性 库的使用 ...

  6. Android WebView常见问题及解决方案汇总【很全很实用】

    http://www.cnblogs.com/olartan/p/5713013.html

  7. PEP8 Python 编码规范整理

    一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类 ...

  8. 【转】【很全很新】C3P0 连接池和 DBUtils 配合事务使用总结

    [转]https://blog.csdn.net/guozhaohui628/article/details/84793028 很久没用原生连接池,最近想写个小功能,结果发现很多地方不太懂,然后网上搜 ...

  9. 很全很全的JavaScript的模块讲解

    介绍 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元.所谓模块化主要是解决代码分割.作用域隔离.模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等多个方 ...

随机推荐

  1. 为你的PHP程序选择合适的密码库(初稿)

    如果本文中的术语让你感到疑惑,请先参阅密码学术语及概念一文. 密码学不是魔术.加密一个应用程序并不能保证它在袭击下的安全(特别是在你没有设置验证密文的情况下).但如果出于商业需求你要确保程序的安全,传 ...

  2. linux下mysql修改数据库账户root密码

    #先停止mysql,再运行下一句 $ mysqld_safe --user=mysql --skip-grant-tables --skip-networking & $ mysql -u r ...

  3. mysql 查询重复值命令

    积累备忘啊: ; 从t_maintenanceinfo表查询重复记录的mtiId 和ip字段,以及重复条数

  4. [itint5]根据前序后序遍历统计二叉树

    http://www.itint5.com/oj/#28 这题有意思.一开始还想不清楚,看了解释,很棒. 这个题目的特殊之处是所有节点的值都是不一样的. 所以递归过程可以大大简化. 先看两种遍历的性质 ...

  5. js 中多维数组的深拷贝的多种实现方式

    因为javascript分原始类型与引用类型(与java.c#类似).Array是引用类型,所以直接用=号赋值的话,只是把源数组的地址(或叫指针)赋值给目的数组,并没有实现数组的数据的拷贝.另外对一维 ...

  6. QT中16进制字符串转汉字

    最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码比如接受到了一串字符4F60597D,它是“你好”的unicode编码,一个unicode编码占两个字节 ...

  7. RabbitMQ消息队列(一): Detailed Introduction 详细介绍(转)

    1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有 ...

  8. Android 内核初识(1)下载源码需求与教程

    官方文档: http://source.android.com/source/requirements.html  Requirements The Android build is routinel ...

  9. chrome和火狐获取资源

    获取网站数据: chrome下获取网站数据可以用如下方式去获取: 而火狐则可以按以下方式获取: 在该目录下找到你想要的数据. 获取本地的数据: chrome下获取本地的数据: firefox下获取本地 ...

  10. 函数fseg_set_nth_frag_page_no

    /**********************************************************************//** Sets the page number in ...