基于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 相关文章推荐
php Smarty模板生成html文档的方法
Apr 12 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
PHP输入流php://input介绍
Sep 18 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 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
PHP生成器简单实例
2015/05/13 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
Python是怎样处理json模块的
2020/07/16 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
HTTP状态码详解
2021/03/18 杂记
建龙钢铁面试总结
2014/04/15 面试题
java程序员面试交流
2012/11/29 面试题
研究生自荐信
2013/10/09 职场文书
大学生大二自我鉴定
2013/10/28 职场文书
餐饮业的创业计划书范文
2013/12/26 职场文书
信仰心得体会
2014/09/05 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
django上传文件的三种方式
2021/04/29 Python
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫
2022微信温控新功能上线
2022/05/09 数码科技