找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2332|回复: 1

[教程] PHP中自编函数、类命名规范

[复制链接]
发表于 2013-3-31 19:54:32 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
无规不成方圆,各位初学PHPer,在自编函数、类命名时请规范命名,为以后成为PHP高级程序员养成良好的习惯,打下坚硬的基石!以下内容请参考!


类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)
class Raster;
class ImageSprite
在为类(class)命名前首先要知道类的功能。如果通过类名的提供的线索,不能准确反映类的功能,那么,命名就是失败的。
超过三个词组成的混合名是容易造成系统各个实体间的混淆,尝试使用(CRC Session card)看看该命名所对应的实体是否有着那么多的功用。
对于派生类[子类]的命名应该避免带其父类[基类]名的诱惑,一个类的名字只与它自身有关,和它的父类[基类]无关。
有时后缀名是有用的,例如:如果你的系统使用了代理(agent),那么就把某个部件命名为“下载代理”(downloadAgent)用以真正的传送信息。


类属性的命名
属性命名应该以字符‘m’为前缀。
前缀‘m’后采用于类命名一致的规则。
‘m’总是在名字的开头起修饰作用,就像以‘r’开头表示引用一样。

理由:前缀'm'防止类属性和方法名发生任何冲突。你的方法名和属性名经常会很类似,特别是存取元素。

例如
class NameOneTwo {
  int $mVarAbc;
  int $mErrorNumber;
  String $mrName;
}


函数
方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。

function run();
function runFast();
function getBackground();

通常每个方法都是执行一个动作的,所以对它的命名应该清楚的说明它是做什么的:用checkForErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。这么做也可以使功能和数据成为更可区分的物体。

有时后缀名是有用的:
Max - 含义为某实体所能赋予的最大值。
Cnt - 一个运行中的计数变量的当前值。
Key - 键值。

例如:retryMax 表示最多重试次数,retryCnt 表示当前重试次数。

有时前缀名是有用的:
is - 含义为问一个关于某样事物的问题。无论何时,当人们看到Is就会知道这是一个问题。
get - 含义为取得一个数值。
set - 含义为设定一个数值
例如:isHitRetryLimit

变量
第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。
变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。

char $c;
int $i;
float $myWidth;

实例变量
大小写规则和变量名相似,除了前面需要一个下划线“_”
int $_employeeId;
String $_name;
Customer $_customer;

常量
类常量和ANSI[American National Standards Institute(ANSI——美国国家标准局)]常量的声明,应该全部大写,单词间用下划线隔开。(尽量避免ANSI常量,容易引起错误)
const MY_NAME = "我本沉默";

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2013-3-31 21:05:32 | 显示全部楼层 来自 中国–北京–北京
我差点死在命名上,不规范害死人啊

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-25 14:11 , Processed in 0.046737 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表