首页 > 代码库 > 命名空间
命名空间
命名空间
◆完全限定名称(Fully-qualified name)
任何PHP代码都可以引用完全限定名称,它是一个以命名空间反斜线开头的标识符,如\App\Lib1\MYCONST,\App\Lib2\MyFunction( )等。
完全限定名称是没有任何歧义的,开头的反斜线和文件路径的作用有点类似,它表示“根”全局空间,如果我们在全局空间中实现了一个不同的MyFunction( ),可以使用\MyFunction( )从lib1.php或lib2.php调用它。
完全限定名称对一次性函数调用或对象初始化非常有用,但当你产生了大量的调用时它们就没有实用价值了,在下面的讨论中我们将会看到,PHP提供了其它选项以解除我们为命名空间打字的烦恼。
◆限定名称(Qualified name)
至少有一个命名空间分隔符的标识符,如Lib1\MyFunction( )。
◆非限定名称(Unqualified name)
没有命名空间分隔符的标识符,如MyFunction( )。
__NAMESPACE__是一个PHP字符串,它总是返回当前命名空间的名称,在全局空间中它是一个空字符串
namespace关键字可以用于明确引用一个当前命名空间或子命名空间中的项目,它等价于类中的self命名空间
小例子命名空间
入口文件 name.php
<?php function __autoload($name) { $name = str_replace("\\", ‘/‘, $name.".class.php"); require_once(dirname(__FILE__).‘/‘.$name); } use test\user as mc; $m = new mc(); var_dump($m); $m-> user2();
./test/user.class.php文件
<?php namespace test; class user { function user() { echo ‘new‘; } function user2() { echo ‘@@@@‘; } }
结果
]
构造函数要用__construct() ,才可以调用到数据
命名空间
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。