- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PHP 5.4中如何写出整洁的代码
PHP 5.4中如何写出整洁的代码
在出台七个候选对象后,PHP5.4终于出炉,和以前一样,新版本有很多改进的地方。
从平台级别来讲,新的性能没有什么副作用:用户可以很方便地创建内置Web服务器或
其他工具,只要他们对维护工作不厌烦。但是语言设计者必须更小心:有些可能被滥用的性
能难保不被写成难以理解和重复使用的代码。
让我们看一下新性能,并以两项标准对其进行评分:实用性以及被滥用的可能性。这里
将避免论及与语言无关的事项。
Traits
Traits是PHP5.4中最有名的创新:这是一个被水平重复利用的表单,类似于多重继承,
可以将多个域和方法放到到不同的地方,在类与traits之间建立多对多的关系。
Traits和mixins通常会导致使用traits的类表现出整体性欠佳:对象暴露了几百个方
法,因为它们准备好被随时抓取到trait中。
首先,PHP试图通过引入traits构成上的多个编译时间检测来限制多重遗传:
1.使用相同命名法的traits会导致严重错误,除非有明确的冲突解决办法。
2.traits位于单独的层级,因此它们是彼此的组成部分,但是不能从类那里借用代码。
3.它们支持抽象的成员,所以在组成类中强制要求方法定义;不能调用所显示类中未被
定义的成员。
4.除了所显示类中已有的属性,它们还可以定义属性。
5.它们可以覆盖遗留下来的构造函数,但是这种潜在的滥用被认为是漏洞,所以会被修
复。
笔者将traits与抽象类进行了对比,发现了一些相同的问题:耦合(遗传是一种修复过
的附属关系),较弱的可测性和可理解性,因为你需要看不同地方的代码。至于界面的组成,
当操作得当时,你就会停留在界面边缘,遗传可能带你跳跃层级。但现在有多个层级需要跨
越。
不过我们并不打算放弃该语言的遗传支持,因为即便是编程牛人也有使用这些性能的时
候。问题是在大多数使用案例,如使用Decorator或Composite,仅仅是因为它很酷而并非因
为被迫使用。
尽管Java API打算在没有traits的情况下完成操作,但我们不希望看到对象继承300多
个方法。因此笔者喜欢tratis展示,不过其真正的使用情况可能不怎么样。
实用指数:8 潜在滥用指数:8
数列的简短标记
PHP数列把Web中的大部分要素都连接在一起。他们可以是列表,地图和矩阵。而且作为
原语类型,它们可能已经被滥用,值对象或域对象或许更适合。
不过,新的简短标记本身并不是什么问题:
[giorgio@Desmond:~]$ php -r var_dump([4,2]);‘
array(2) {
[0]=
int(4)
[1]=
int(2)
}
[giorgio@Desmond:~]$ php -rvar_dump([key = 4]);
array(1) {
[“key”]=
int(4)
}
JavaScript和许多其他动态语言都有相同的句法,所以没有理由将array()强加给程
序员。这一句法对数列使用几乎没有影响。
实用指数8;潜在滥用指数8
数列解除参照
Alessandro Nadalin 公 布 了 简 单 的 使 用 案 例
(/hands-on-php-5-4-traits-and-other-good-stuff/),其中的
性能很简单,可在任何数列中保存关闭:
$callbacks = array(key = function() {… }, …);
$callbacks[key]();
不过,尽管[$field]()和[$field]有效,但是任何有两个()的尝试,如()[]()
不会产生句法错误。这些很有可能违背Demeter法则,因此笔者很庆幸没有支持永久连接。
实用指数:7 潜在滥用指数:4
关闭和数列调用,以及输入建议
用$variable()不仅可以调用关闭,还可以对数列($object, method’)等进行回
调。
这样就可以避免许多if和样板文件代码:
$callback = function($param) use ($object){
return $object-method($param);
};
您可能关注的文档
- 5.4定积分的积分法.pdf
- CentOS5.4中搭建LAMP+Discuz+本地YUM源.pdf
- 曹国忠:ZnO球聚体,5.4%.pdf
- 5.3.3 管道中的高次波.pdf
- 习题5.4嘉庚微积分答案.pdf
- jade教程.pdf
- STM32F103C中文资料.pdf
- 应用Aida64 Extreme Edition对显示器配件进行测试图解.pdf
- 船舶海水泵用材料_镍铝青铜性能的研究.pdf
- ArcSDE10升级SP1补丁.pdf
- 2025届云南省丽江市高中毕业生复习统一检测化学试题及答案.docx
- 2025届云南省丽江市高中毕业生复习统一检测生物试题及答案.docx
- 2025届云南省丽江市高中毕业生复习统一检测英语试题及答案.docx
- 2025届云南省丽江市高中毕业生复习统一检测物理试题及答案.docx
- 显性与隐性双重天津商业步行街改造评价调查.pdf
- 2025届云南省丽江市高中毕业生复习统一检测语文试题及答案.docx
- 奔驰威霆TVC创意脚本提报.pptx
- 2025届云南省丽江市高中毕业生复习统一检测历史试题及答案.docx
- 2025届浙江省Z20名校联盟高三上学期第二次联考地理试题及答案.docx
- 2025届浙江省北斗星盟高三上学期12月月考政治试题及答案.docx
最近下载
- 新能源汽车驱动电机及控制系统检修 教案全套 项目1--4 驱动电机检修--- 驱动电机冷却系统检修.pdf
- 部编优质课一等奖初中语文七年级下册《寻找最美对联》.ppt VIP
- 乳腺癌的护理.ppt
- 焦炉调温工考试:冶金焦炉调温工考试试题及答案五.docx VIP
- 焦炉调温工考试:冶金焦炉调温工考试试题预测三.docx VIP
- 焦炉调温工考试:冶金焦炉调温工考试.docx VIP
- 英语电影赏析.ppt
- 焦炉调温工考试:初级焦炉调温工考试考试题五.docx VIP
- 2024-2025学年湘教版小学二年级美术教学计划参考范本(三篇).pdf VIP
- 焦炉调温工考试:初级焦炉调温工考试必看题库知识点五.docx VIP
文档评论(0)