PHP5.3新特性:名称空间(Namespaces)
之前陆续介绍了php 5.3的一些新特性,正好上周看到ZendCon关于5.3的ppt,介绍的更为详细,那么这里做个归总或者说翻译:) Namespaces php 5.3最大的改动,毫无疑问就是Namespaces(此前有一篇相关的PHP Namespaces FAQ)。这给php开发人员带来的好处不少,广为人们所诟病的函数命名问题也得到了解决。 代码更清晰 5.3之前常见的代码,需要自定义前缀区分函数和类名 CODE: function MY_wrapper() {} 使用名称空间之后,代码看上去更加clean。 CODE: namespace MY; 一个文件中定义了多个namespace 如果一个文件中定义了多个namespace,应该怎样处理? CODE: namespace LIB; 以上代码输出为: CODE: string(18) "LIB_EXTRA::MScrypt" php是解释执行的语言,以上结果合情合理。 namespace的优先级 namespace中定义的函数,类和常量优先,其次才是全局的。 CODE: namespace foo; namespace和autoload的友情 autoload会根据namespace名称以及class名称来解析类文件位置 仅当namespace和全局范围都没找到class定义的情况下,autoload才会被触发 在namespace中定义的__autoload不会被自动调用 CODE: function __autoload($var) { var_dump($var); } // LIB::foo namespace一些辅料 CODE: namespace really::long::pointlessly::verbose::ns; |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |