市场营销求职招聘交流微信群 https://m.qncyw.com/show/news?id=74909导读:命名空间实际上就是将类/函数/常量分门别类,然后引用的一种方法。(就好比于:A中include(require)B,C,就可以使用BC中的函数常量,并可对BC的类进行操作,而A引用BC的方法,就是通过命名空间实现的)用途:用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突(命名空间影响范围:类/函数/常量)注意:定义命名空间必须是程序脚本的第一条语句不提倡在同一个文件中定义多个命名空间定义方式:namespace***/****/***/***;(例如)namespaceapp\admin;定义多个命名空间(不提倡)定义多个命名空间和不包含在命名空间中的代码(不提倡)类的三种引用方式:非限定性引用:例如a=newfoo();或foo::staticmethod();。如果当前命名空间是currentnamespace,foo将被解析为currentnamespace\foo。限定性引用:例如a=newsubnamespace\foo();或subnamespace\foo::staticmethod();。如果当前的命名空间是currentnamespace,则foo会被解析为currentnamespace\subnamespace\foo。完全限定引用:a=new\currentnamespace\foo();或\currentnamespace\foo::staticmethod();。在这种情况下,foo总是被解析为代码中的文字名(literalname)currentnamespace\foo。动态引用:概念:将路径或者函数名存在变量中,进行实例化或引用函数/常量(实用,很多类名称/函数/常量都是通过变量传递的)注意:必须使用完全限定名称(包括命名空间前缀的类名称)!!注意因为在动态的类名称、函数名称或常量名称中,限定名称和完全限定名称没有区别,因此其前导的反斜杠是不必要的。引用与别名:允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。三种方式导入/别名为类名称使用别名为接口使用别名为命名空间使用别名PHP5.6开始允许导入函数或者常量导入使用别名全局空间:未定义任何命名空间,所有的类与函数的定义都是在全局空间。在名称前加上前缀\表明该名称是全局变量中的名称使用类:解析到当前命名空间中的名称,因此访问系统内部或不包含在命名空间中的类名称时,必须使用完全限定名称。常量/函数:如果当前命名空间中不存在该函数或常量,PHP会退而求其次使用全局空间中的变量或函数。下面是变量解析范例:
转载请注明:http://www.aierlanlan.com/tzrz/7635.html