php编程命名规则

编程

命名是程序规划的核心。古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力
量。只要你给事物想到正确的名字,就会给你以及后来的人带来比代码更强的力量。别笑!

名字就是事物在它所处的生态环境中一个长久而深远的结果。总的来说,只有了解系统的程序员才能为系
统取出最合适的名字。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推
想也能在意料之中。

如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新好好再看看你的设计吧。

类命名
在为类(class )命名前首先要知道它是什么。如果通过类名的提供的线索,你还是想不起这个类是
什么 的话,那么你的设计就还做的不够好。

超过三个词组成的混合名是容易造成系统各个实体间的混淆,再看看你的设计,尝试使用(CRC Se-
ssion card)看看该命名所对应的实体是否有着那么多的功用。

对于派生类的命名应该避免带其父类名的诱惑,一个类的名字只与它自身有关,和它的父类叫什么无
关。

有时后缀名是有用的,例如:如果你的系统使用了代理(agent ),那么就把某个部件命名为“下
载代理”(DownloadAgent)用以真正的传送信息。
方法和函数命名
通常每个方法和函数都是执行一个动作的,所以对它们的命名应该清楚的说明它们是做什么的:用
CheckForErrors()代替ErrorCheck(),用DumpDataToFile()代替DataFile()。这么做也可以使功能和
数据成为更可区分的物体。

有时后缀名是有用的:
Max - 含义为某实体所能赋予的最大值。
Cnt - 一个运行中的计数变量的当前值。
Key - 键值。
例如:RetryMax 表示最多重试次数,RetryCnt 表示当前重试次数。

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

缩写词不要全部使用大写字母
无论如何,当遇到以下情况,你可以用首字母大写其余字母小写来代替全部使用大写字母的方法来表
示缩写词。

使用: GetHtmlStatistic.
不使用: GetHTMLStatistic.

理由
当命名含有缩略词时,人们似乎有着非常不同的直觉。统一规定是最好,这样一来,命名的含义就完
全可以预知了。
举个NetworkABCKey的例子,注意C是应该是ABC里面的C还是key里面的C,这个是很令人费解的。有些
人不在意这些,其他人却很讨厌这样。所以你会在不同的代码里看到不同的规则,使得你不知道怎么
去叫它。

例如
class FluidOz // 不要写成 FluidOZ
class GetHtmlStatistic // 不要写成 GetHTMLStatistic

--------------------------------------------------------------------------------

类命名
使用大写字母作为词的分隔,其他的字母均使用小写
名字的首字母使用大写
不要使用下划线('_')
理由
根据很多的命名方式,大部分人认为这样是最好的方式。
例如
class NameOneTwo

class Name

--------------------------------------------------------------------------------

类库命名
目前命名空间正在越来越广泛的被采用,以避免不同厂商和团体类库间的类名冲突。

当尚未采用命名空间的时候,为了避免类名冲突,一般的做法是在类名前加上独特的前缀,两个字符就
可以了,当然多用一些会更好。
例如
John Johnson的数据结构类库可以用Jj做为前缀,如下:
class JjLinkList
{
}

--------------------------------------------------------------------------------

方法命名
采用与类命名一致的规则
理由
使用所有不同规则的大部分人发现这是最好的折衷办法。
例如
class NameOneTwo
{
function DoIt() {};
function HandleError() {};
}

--------------------------------------------------------------------------------

类属性命名
属性命名应该以字符‘m’为前缀。
前缀‘m’后采用于类命名一致的规则。
‘m’总是在名字的开头起修饰作用,就像以‘r’开头表示引用一样。
理由
前缀'm'防止类属性和方法名发生任何冲突。你的方法名和属性名经常会很类似,特别是存取元素。
例如
class NameOneTwo
{
function VarAbc() {};
function ErrorNumber() {};
var mVarAbc;
var mErrorNumber;
var mrName;
}

--------------------------------------------------------------------------------

方法中参数命名
第一个字符使用小写字母。
在首字符后的所有字都按照类命名规则首字符大写。
理由
你可以随时知道那个变量对应那个变量。
你可以使用与类名相似的名称而不至于产生重名冲突。
例如
class NameOneTwo
{
function StartYourEngines(
&$rSomeEngine,
&$rAnotherEngine);
}

--------------------------------------------------------------------------------

变量命名
所有字母都使用小写
使用'_'作为每个词的分界。
理由
通过这一途径,代码中变量的作用域是清晰的。
所有的变量在代码中都看起来不同,容易辨认。
例如
function HandleError($errorNumber)
{
$error = OsErr();
$time_of_error = OsErr->getTimeOfError;
$error_processor = OsErr->getErrorProcessor;
}

--------------------------------------------------------------------------------

引用变量和函数返回引用
引用必须带‘r’前缀
理由
使得类型不同的变量容易辨认
它可以确定哪个方法返回可更改对象,哪个方法返回不可更改对象。
例如
class Test
{
var mrStatus;
function DoSomething(&$rStatus) {};
function &rStatus() {};
}

--------------------------------------------------------------------------------

全局变量
全局变量应该带前缀‘g’。
理由
知道一个变量的作用域是非常重要的。
例如
global $gLog;
global &$grLog;

--------------------------------------------------------------------------------

定义命名 / 全局常量
全局常量用'_'分隔每个单词。
理由
这是命名全局常量的传统。你要注意不要与其它的定义相冲突。
例如
define("A_GLOBAL_CONSTANT", "Hello world!";

--------------------------------------------------------------------------------

静态变量
静态变量应该带前缀‘s’。
理由
知道一个变量的作用域是非常重要的。
例如
function test(){ static $msStatus = 0;
}

--------------------------------------------------------------------------------

函数命名
函数名字采用C GNU的惯例,所有的字母使用小写字母,使用'_'分割单词。
理由
这样可以更易于区分相关联的类名。
例如
function some_bloody_function()
{
}

--------------------------------------------------------------------------------

错误返回检测规则
检查所有的系统调用的错误信息,除非你要忽略错误。
为每条系统错误消息定义好系统错误文本以便include。

--------------------------------------------------------------------------------

大括号 {} 规则
在三种主要的大括号放置规则中,有两种是可以接受的,如下的第一种是最好的:
将大括号放置在关键词下方的同列处:
if ($condition) while ($condition)
{ {
... ...
} }

传统的UNIX的括号规则是,首括号与关键词同行,尾括号与关键字同列:
if ($condition) { while ($condition) {
... ...
} }

理由
引起剧烈争论的非原则的问题可通过折衷的办法解决,两种方法任意一种都是可以接受的,然而对于大
多数人来说更喜欢第一种。原因就是心理研究学习范畴的东西了。
对于更喜欢第一种还有着更多的原因。如果您使用的字符编辑器支持括号匹配功能的话(例如vi),最
重要的就是有一个好的样式。为什么?我们说当你有一大块的程序而且想知道这一大块程序是在哪儿结
束的话。你先移到开始的括号,按下按钮编辑器就会找到与之对应的结束括号,例如:

if ($very_long_condition && $second_very_long_condition)
{
...
}
else if (...)
{
...
}

从一个程序块移动到另一个程序块只需要用光标和你的括号匹配键就可以了,不需要来回的移动到行末去
找匹配的括号。

时间: 2024-09-16 14:47:41

php编程命名规则的相关文章

Visual C++编程命名规则

一.程序风格:      1.严格采用阶梯层次组织程序代码:      各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如:      2.提示信息字符串的位置      在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中.      3.对变量的定义,尽量位于函数的开始位置.  二.命名规则:      1.变量名的命名规则 ①.变量的命名规则要求用

高质量C++/C编程指南-第3章-命名规则(2)

l [规则3-1-8]用正确的反义词组命名具有互斥意义的变量或相反动作的函数等. 例如: int minValue; int maxValue; int SetValue(-); int GetValue(-); 2 [建议3-1-1]尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号.这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字编号最省事). 3.2 简单的Windows应用程序命名规则作者对"匈牙利"命名规则做了合理的简

高质量C++/C编程指南-第3章-命名规则(1)

第3章 命名规则比较著名的命名规则当推Microsoft公司的"匈牙利"法,该命名规则的主要思想是"在变量和函数名中加入前缀以增进人们对程序的理解".例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p.如果一个变量由ppch开头,则表明它是指向字符指针的指针. "匈牙利"法最大的缺点是烦琐,例如 int i, j, k; float x, y, z; 倘若采用"匈牙利"命名规则,则应当写成 int iI, iJ, ik

CSS规范化命名的重要性及三种通用命名规则

css|规范|规范化 我们在webjx.com以前的文章中,曾经多次提到CSS命名的问题,有些朋友依然不够重视这些问题.认为这个问题对于CSS网页布局开发是无关紧要的.自己写的样式,自己心中有数就可以了.想要修改样式可以根据自己的记忆或个人的编码习惯很快的找到样式定义在文件中的位置.下面是我们以前介绍的关于CSS命名的文章: 但是,如果我们过几个月,过几年再修改现在所编写的文章,你的记忆还会那么清晰吗?如果你的个人习惯仅是一时的规则,长时间以后,或许对你自己来说,那些奇怪的名字也变的难以理解了.

详细讲解CSS规范化命名的三种通用命名规则

css|规范|规范化 我们在webjx.com以前的文章中,曾经多次提到CSS命名的问题,有些朋友依然不够重视这些问题.认为这个问题对于CSS网页布局开发是无关紧要的.自己写的样式,自己心中有数就可以了.想要修改样式可以根据自己的记忆或个人的编码习惯很快的找到样式定义在文件中的位置.下面是我们以前介绍的关于CSS命名的文章: 但是,如果我们过几个月,过几年再修改现在所编写的文章,你的记忆还会那么清晰吗?如果你的个人习惯仅是一时的规则,长时间以后,或许对你自己来说,那些奇怪的名字也变的难以理解了.

ASP中,常用的变量命名规则

变量 在ASP编程中,如果你遵守了下面的变量命名规则,你的代码的可行性.可维护性将会更好: 一般命名规则前缀 变量类型 例子 b or bln Boolean bSuccess c or cur Currency cAmount d or dbl Double dblQuantity dt or dat Date and Time dtDate f or flt Float fRatio l or lng Long lMilliseconds i or int Integer iCounter

C#中的命名规则与编码规范

编码|规范 一.匈牙利命名法:       Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的.匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等.这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他.例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量.     匈牙利命名

.net官方编码方法和命名规则

编码 Visual Studio  编码方法 编码方法合并了软件开发的许多方面.尽管它们通常对应用程序的功能没有影响,但它们对于改善对源代码的理解是有帮助的.这里考虑了所有形式的源代码,包括编程.脚本撰写.标记和查询语言. 不建议将这里定义的编码方法形成一套固定的编码标准.相反,它们旨在作为开发特定软件项目的编码标准的指南. 编码方法分为三部分: 命名 注释 格式 命名 对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助.名称应该说明"什么"而不是"如何".通

ASP中常用的变量命名规则

  ASP中,常用的变量命名规则 在ASP编程中,如果你遵守了下面的变量命名规则,你的代码的可行性.可维护性将会更好: 一般命名规则 前缀 变量类型 例子 b or bln Boolean bSuccess c or cur Currency cAmount d or dbl Double dblQuantity dt or dat Date and Time dtDate f or flt Float fRatio l or lng Long lMilliseconds i or int In