规范的命名方式可以使得代码规整、易读易理解,而且方便他人和自己的后期的代码审查和维护。本篇主要会提到 变量命名 (普通变量命名、常量命名、成员变量、参数名)、方法函数命名、类命名和一些命名约定。
一、变量命名
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
后缀
由于本人学艺不精,未尽之处还望海涵,有误之处请多多指正,欢迎大家批评指教
本文 完