基于php编程规范(详解)


Posted in PHP onAugust 17, 2017

今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性

1、PHP 编程规范与编码习惯最主要的有以下几点:

 1 文件说明

 2 function 函数体说明

 3 代码缩进

 4 if省略

 5 变量规范

 6 命名规范

 7 十行一注释

 8 注释风格

 9 开放关闭原则

2、文件说明 个人代码 -规范如下:

<?
/*
 +----------------------------------------------------------------------
 + Title    : 标题
 + Author    : 作者
 + Version   : 版本号
 + Initial-Time : 这个文件初始创建的时间
 + Last-time  : 这个文件最后修改的时间 + 修改人的名称
 + Desc     : 这个文件的简单描述
 +----------------------------------------------------------------------
*/

3、Function 函数体说明:

<?
/**
 * 函数体简单的描述
 * @author_start : 作者
 * @author_end  : 修改时间 + 修改者
 * @param string : $id    描述
 * @param array : $array 描述
 * @param array : $num  描述
 * @return : 返回值说明
*/
function Test($id, $array = array(), $num = 1){
}

注意:Function里面变量参数的代码缩进风格

4、代码缩进:

<?
$str = 1;
$info = '123';
$version = '123123';
$name = 'test';
$i  = 'haha';
 
# 一般在最外部的if 或流程控制语句都应该上下留空一行
if ($info) {
 
}
 
# 一般在最外部的for或者 foreach都应该上下留空一行
for ($i=0 ,$i<6 ,$i++){
 
}

5、IF省略

<?
# 一般在if语句与其分支的流程控制语句当中,存在这exit或者return的情况下,都应该省略其else的部分操作
# 错误
if () {
  return false;
} else {
  return true;
}
# 正确
if () {
  return false;
}
return true;

6、变量规范,使用英文命名

<?
# 正确
$title = '标题';
$name = '名称';
$pwd  = '密码';
# 错误
$biaoti = '标题';
$ming  = '名称';
$mima  = '密码';

7、命名规范

<?
/**
 * 实际开发中,命名方式一般有三种情况
 * 注意:不管是类名,变量,方法名,在实际开发中,最多只能是不超过3个单词的组合
 * 大驼峰 :每个单词首字母大写
 * 小驼峰 :中间单词首字母大写 
 * 蛇形  :每个单词小写,单词与单词之间使用 _ 符合链接
 */
 
# 大驼峰,常用于类名定义
class Car{}
class BlueCar{}
 
# 小驼峰,常用于方法名定义
class Car{
 public function getColor(){}
}
 
# 蛇形,常用于变量名定义
$res_id  = 1;
$res_name = 2;

9、注释风格

<?
1、当需要对某段代码,做大量描述时,使用以下注释风格
/**
 * 我是说明
 * ① 流程一
 * ② 流程二
 * ③ 流程三
 */
 
2、当需要对一行代码,做小量描述时,使用以下注释风格
# 这是XXXX给ZZZZ的变量,叫CCCC
$name = '';
 
3、当需要对一行代码,做简介描述时,使用以下注释风格
$name    = ''; // X表的字段
$index_head = ''; // 首页请求头

10、开放关闭原则

实际上这是一个概念,是设计模式中的一种。

简单来说,就是一个已经完成上线的class或者api,可以在不改动起原文件的情况下,对其功能进行外部扩展。

以上这篇基于php编程规范(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
第七节--类的静态成员
Nov 16 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php实现的简单检验登陆类
Jun 18 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
PHP简单遍历对象示例
Sep 28 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP内置加密函数详解
Nov 20 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
PHP7 其他语言层面的修改
Mar 09 PHP
PHP数据库操作四:mongodb用法分析
Aug 16 #PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 #PHP
PHP数据库操作三:redis用法分析
Aug 16 #PHP
PHP数据库操作二:memcache用法分析
Aug 16 #PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 #PHP
PHP回调函数与匿名函数实例详解
Aug 16 #PHP
搭建自己的PHP MVC框架详解
Aug 16 #PHP
You might like
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
php之curl设置超时实例
2014/11/03 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
微信小程序组件传值图示过程详解
2019/07/31 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
Python 如何实现访问者模式
2020/07/28 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
医学生自我评价
2014/01/27 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
村党支部书记承诺书
2014/05/29 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL