PHP开发规范——代码规范篇(一):命名规范

规范的命名方式可以使得代码规整、易读易理解,而且方便他人和自己的后期的代码审查和维护。本篇主要会提到 变量命名普通变量命名、常量命名、成员变量、参数名)、方法函数命名类命名和一些命名约定

一、变量命名

1.普通变量

  • 变量中的所有字母字符均为小写

例:
$student = 'Li Lei';
反例:
receive_HTML = '404 Not Found!';
receive_Html = '404 Not Found!';
强制使用:
receive_html = '404 Not Found!';

  • 变量命中只能出现字母和下划线 _ 和必要时的数字(变量中除非十分必要时可出现数字,否则不建议在命名中使用数字)

例:
$order = 'I bought a watch last year!';
$browser_chrome = 'Google Chrome';
反例:
$teacher1 = 'Mr. wang';
$teacher2 = 'Mr. Liu';
推荐使用:
$teacher_wang = 'Mr. Wang';
$teacher_liu = 'Mr. Liu';

  • 变量以字母开头,不能以下划线 _ 和数字开头,也不能以下划线结尾

例:
$name = 'Choel';
反例:
$_name = 'Choel'; (普通变量杜绝使用下划线开头)

  • 变量中禁止出现拼音和英文单词的组合,更不允许出现汉字,不推荐拼音来命名
    例:

$send_mesessage = 'Hello World!';
反例:
$good_yagao = '牙膏'; (杜绝使用)
$shangpin_yagao = '牙膏'; (不推荐使用)
推荐使用:
$good_toothpaste = '牙膏';

  • 变量名尽量不使用缩写,或者使用通用的、公认的缩写

例:
$receive_html = '404';
$nwnu_name = '西北师范大学';
反例:
$tea_name = 'Mr. Wang'; (不推荐使用)
推荐使用:
$teacher_name = 'Mr. Wang';

  • 变量名要达到望文生义的效果

2.常量

  • 常量名全部大写,要求语义明确,不局限于变量名称的长度,各单词之间用下划线 _ 连接

例:

define("GREETING", "Welcome to earth!");
define("GREETING_TO_ROBOTS", "Welcome to earth!");
  • 常量名要达到望文生义的效果
  • 常量名中只能出现大写字母和下划线 _ ,杜绝出现数字
  • _ 只用来作连接作用,不出现在变量名来头和结尾

3.成员变量

  • 成员变量名以小写字母开头,成员变量名由多个单词组成时,除第一个单词首字母小写,其他单词首字母大写然后连接,即使用驼峰命名法命名( lowerCamelCase

例:

<?php
    namespace App\Http\Controllers\Admin;

    use App\Http\Controllers\Controller;
 
    class IndexController extends Controller
    {
        private $sendType = '';
        
        public function getSuperManName() {
            findSuperManName();
        }
    }
  • 杜绝出现除字母之外的其他符号,不推荐在成员变量中使用数字
  • 成员变量名要达到望文生义的效果

4.参数名

  • 方法函数的参数名以小写字母开头,由多个单词组成时,除第一个单词首字母小写,其他单词首字母大写然后连接,即使用驼峰命名法命名( lowerCamelCase

例:

<?php
 
function sayHello($wordType, $length) {
        //do something
    }
}
  • 杜绝出现除字母之外的其他符号,不推荐在参数名中使用数字
  • 参数名要达到望文生义的效果

二、方法函数命名

  • 方法函数名以小写字母开头,方法函数名由多个单词组成时,除第一个单词首字母小写,其他单词首字母大写然后连接,即使用驼峰命名法命名( lowerCamelCase
  • 方法函数名中禁止出现拼音和英文单词的组合,更不允许出现汉字,不推荐拼音来命名
  • 杜绝出现除字母之外的其他符号,不推荐在方法函数名中使用数字
  • 方法函数名要浅显易懂,达到望文生义的效果

例:创建的 getSuperManName() 方法和调用的 findSuperManName() 函数都是用了驼峰命名法

<?php
    namespace App\Http\Controllers\Admin;

    use App\Http\Controllers\Controller;
 
    class IndexController extends Controller
    {
        public function getSuperManName() {
            findSuperManName();
        }
    }

三、类命名

  • 类名以大写字母开头,类名由多个单词组成时,各单词首字母大写然后连接,即使用驼峰命名法命名( UpperCamelCase
  • 类名中禁止出现拼音和英文单词的组合,更不允许出现汉字,不推荐拼音来命名
  • 杜绝出现除字母之外的其他符号,不推荐在类名中使用数字
  • 类名要浅显易懂,达到望文生义的效果

四、一些命名约定

1.变量名

  • bool型的标志或者状态通常在命名中添加 _flag_status 后缀

例:
$receive_status = 'true';
$end_flag = 'false';

  • 数组使用 _arr 后缀名或者使用 名词复数形式

例:

$student_arr = ['Chole', 'Dedanlion', 'Wu'];
$students = ['Chole', 'Dedanlion', 'Wu'];
  • 从数据库查询到的数据集合通常使用 moduleName + _list / _data / _arr 约定来命名

2.方法名

  • 更新方法使用 update 前缀
  • 删除方法使用 remove 或者 delete 前缀
  • 插入方法使用 save 或者 insert 前缀
  • 获取单个数据方法使用 get 前缀
  • 获取多个数据方法使用 list 前缀
  • 统计方法使用 count 前缀
  • 判断方法使用 is 前缀

3.类名、接口名

  • 抽象类使用 Abstract 前缀
  • 异常类使用 Exception 后缀
  • 测试类使用要 测试类的类名 + Test后缀

由于本人学艺不精,未尽之处还望海涵,有误之处请多多指正,欢迎大家批评指教

本文 完

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 前言 本开发规范基于《阿里巴巴Java开发手册终极版》修改,并集成我们自己的项目开发规范,整合而成。 为表示对阿里...
    4ea0af17fd67阅读 5,619评论 0 5
  • 前言 说是前言,其实也是本文诞生的目的。随着公司业务的不断增加,功能的快速迭代,app的业务线越来越多,代码体积变...
    Yealink阅读 5,266评论 0 13
  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 40,937评论 0 48
  • 阿里巴巴 JAVA 开发手册 1 / 32 Java 开发手册 版本号 制定团队 更新日期 备 注 1.0.0 阿...
    糖宝_阅读 7,492评论 0 5
  • 2018-2-18 新年里,走亲访友,吃喝玩乐,感谢家乡所有亲人的热情招待。 亲爱的儿子,妈妈今天带着你一起拜访长...
    美丽心情_a8bf阅读 180评论 0 4