PHP命名空间

命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题。 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性 1、定义命名空间 使用namespace关键词来定义命名空间,使用反斜杠””作为分隔符。 如: namespace mytest; namespace mytestspacex; namespace mytest2spacexxxxx; 2、使用命名空间 use MyFullClassname; use MyFullClassname as Another, MyFullNSname; 3、PHP命名空间动态特性 在use指令后面不能使用变量或常量。 调用类时,类名及类名前的命名空间可以是变量构成。 <?php namespace np1np2; class Cls{ public static function test() { print ”test namespacen”; } public function test2(){ print ”test namespace 2n”; } } namespace B; np1np2Cls::test(); $cls = ”\np1\np2\Cls”; $cls::test(); $obj = new $cls(); $obj->test2(); 4、名称解析遵循下列规则: 1、对完全限定名称的函数,类和常量的调用在编译时解析。例如 new AB 解析为类 AB。 2、所有的非限定名称和限定名称(非完全限定名称)根据当前的导入规则在编译时进行转换。例如,如果命名空间 ABC 被导入为 C,那么对 CDe() 的调用就会被转换为 ABCDe()。 [...]

posted on 2012-03-15 10:46  wenjuncool  阅读(257)  评论(0编辑  收藏  举报

导航