没有合适的资源?快使用搜索试试~ 我知道了~
PHP编程规范[总结].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 43 浏览量
2021-10-11
23:36:12
上传
评论
收藏 33KB PDF 举报
温馨提示
试读
16页
PHP编程规范[总结].pdf
资源推荐
资源详情
资源评论
php 编程规范
1. 介绍
1.1. 标准化的重要 **
标准化问题在某些方面上让每个人头痛,让人人都觉得大家处于同样的境地。这有助于让这些建议在许多的项目中不断
演进,许多公司花费了许多星期逐子字逐句的进行争论。标准化不是特殊的个人风格,它对本地改良是完全开放的。
1.2. 优点
当一个项目尝试着遵守公用的标准时,会有以下好处:
· 程序员可以了解任何代码,弄清程序的状况
· 新人可以很快的适应环境
· 防止新接触 php 的人出于节省时间的需要,自创一套风格并养成终生的习惯
· 防止新接触 php 的人一次次的犯同样的错误
· 在一致的环境下,人们可以减少犯错的机会
· 程序员们有了一致的敌人
许多项目的经验能得出这样的结论:采用编程标准可以使项目更加顺利地完成。标准是成功的关键么?当然不。但它们
可以帮助我们,而且我们需要我们能得到的所有的帮助!老实说,对一个细节标准的大部分争论主要是源自自负思想。
对一个合理的标准的很少决定能被说为是缺乏技术 ** 的话,那只是口味的原因罢了。所以,要灵活的控制自负思想,记
住,任何项目都取决于团队合作的努力。
2. 命名规则
2.1. 合适的命名
命名是程序规划的核心。古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力量。只要你给
事物想到正确的名字,就会给你以及后来的人带来比代码更强的力量。别笑!
名字就是事物在它所处的生态环境中一个长久而深远的结果。总的来说,只有了解系统的程序员才能为系统取出最合适
的名字。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中。
如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新好好再看看你的设计吧。
2.2. 类命名
· 在为类( class )命名前首先要知道它是什么。如果通过类名的提供的线索,你还是想不起这个类是什么的话,那
么你的设计就还做的不够好。
· 超过三个词组成的混合名是容易造成系统各个实体间的混淆,再看看你的设计,尝试使用( CRC Session card) 看
看该命名所对应的实体是否有着那么多的功用。
· 对于派生类的命名应该避免带其父类名的诱惑,一个类的名字只与它自身有关,和它的父类叫什么无关。
· 有时后缀名是有用的,例如:如果你的系统使用了代理( agent ),那么就把某个部件命名为 " 下载代理 "
(DownloadAgent )用以真正的传送信息。
2.3. 方法和函数命名
·通常每个方法和函数都是执行一个动作的, 所以对它们的命名应该清楚的说明它们是做什么的: 用 CheckForErrors()
代替 ErrorCheck() ,用 DumpDataToFile() 代替 DataFile() 。这么做也可以使功能和数据成为更可区分的物体。
· 有时后缀名是有用的 :
o Max - 含义为某实体所能赋予的最大值。
o Cnt - 一个运行中的计数变量的当前值。
o Key - 键值。
例如: RetryMax 表示最多重试次数, RetryCnt 表示当前重试次数。
· 有时前缀名是有用的:
o Is - 含义为问一个关于某样事物的问题。无论何时,当人们看到 Is 就会知道这是一个问题。
o Get - 含义为取得一个数值。
o Set - 含义为设定一个数值
例如: IsHitRetryLimit 。
2.4. 缩写词不要全部使用大写字母
· 无论如何,当遇到以下情况,你可以用首字母大写其余字母小写来代替全部使用大写字母的方法来表示缩写词。
使用 : GetHtmlStatistic.
不使用 : GetHTMLStatistic.
理由
· 当命名含有缩略词时,人们似乎有着非常不同的直觉。统一规定是最好,这样一来,命名的含义就完全可以预知了。
举个 NetworkABCKey 的例子,注意 C 是应该是 ABC 里面的 C 还是 key 里面的 C,这个是很令人费解的。有些人不
在意这些,其他人却很讨厌这样。所以你会在不同的代码里看到不同的规则,使得你不知道怎么去叫它。
例如
class FluidOz // 不要写成 FluidOZ
class GetHtmlStatistic // 不要写成 GetHTMLStatistic
2.5. 类命名
· 使用大写字母作为词的分隔,其他的字母均使用小写
· 名字的首字母使用大写
· 不要使用下划线 ('_')
理由
· 根据很多的命名方式,大部分人认为这样是最好的方式。
例如
class NameOneTwo
class Name
2.6. 类库命名
· 目前命名空间正在越来越广泛的被采用,以避免不同厂商和团体类库间的类名冲突。
· 当尚未采用命名空间的时候,为了避免类名冲突,一般的做法是在类名前加上独特的前缀,两个字符就可以了,当
然多用一些会更好。
例如
John Johnson 的数据结构类库可以用 Jj 做为前缀,如下:
class JjLinkList
{
}
另一种折中方式是建立包含类库目录(事实上 Java 也是这么做的),以不通的目录代表不同的命名空间。
例如
Microsoft 的数据库相关类库可以在:
/classes/com/Microsoft/ Database/DbConn.php
Apache 的数据库相关类库可在:
/classes/org/apache/Database/DbConn.php
2.7. 方法命名
· 采用与类命名一致的规则
理由
· 使用所有不同规则的大部分人发现这是最好的折衷办法。
例如
class NameOneTwo
{
function DoIt() {};
function HandleError() {};
}
2.8. 类属** 命名
· 属** 命名应该以字符 'm' 为前缀。
· 前缀'm' 后采用于类命名一致的规则。
· 'm' 总是在名字的开头起修饰作用,就像以 'r' 开头表示引用一样。
理由
· 前缀'm' 防止类属 ** 和方法名发生任何冲突。你的方法名和属 ** 名经常会很类似,特别是存取元素。
例如
class NameOneTwo
{
function VarAbc() {};
function ErrorNumber() {};
var $mVarAbc;
var $mErrorNumber;
var $mrName;
}
2.9. 方法中参数命名
· 第一个字符使用小写字母。
· 在首字符后的所有字都按照类命名规则首字符大写。
理由
· 可以区分方法中的一般变量。
· 你可以使用与类名相似的名称而不至于产生重名冲突。
例如
class NameOneTwo
{
function StartYourEngines(
&$rSomeEngine,
&$rAnotherEngine);
}
2.10. 变量命名
· 所有字母都使用小写
· 使用'_' 作为每个词的分界。
理由
· 通过这一途径,代码中变量的作用域是清晰的。
· 所有的变量在代码中都看起来不同,容易辨认。
例如
function HandleError($errorNumber)
剩余15页未读,继续阅读
资源评论
czq131452007
- 粉丝: 2
- 资源: 12万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功