本篇文章给大家分享的是有关PHP中命名空间如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
命名空间(英语:Namespace)表示标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。下面亿速云小编来讲解下PHP命名空间是什么?PHP的命名空间怎么用?
PHP命名空间是什么
简单说来命名空间是为了解决不同库在同一个环境下使用时出现的命名冲突。例如我自己有一个函数名叫A,但是系统已经有一个A函数了,那就会出现冲突。
PHP中的命名空间
PHP从5.3版本开始引入了命名空间,之后许多现有PHP类库以及框架都开始支持它。那么PHP的命名空间怎么用呢?
PHP的命名空间怎么用
定义命名空间
下面是一个定义命名空间的例子
//filea.php
namespaceA;
consttest='Atest';
functiontest(){
return__FUNCTION__;
}
classTest{
publicfunction__construct(){
return__METHOD__;
}
}
>
上面例子中就是一个典型的命名空间定义方法,只有const,function,class受命名空间的约束。
使用命名空间
使用命名空间的方式如下:
namespaceB;
useA;
consttest='Btest';
functiontest(){
return__FUNCTION__;
}
classTest{
publicfunction__construct(){
return__METHOD__;
}
}
include"a.php";//必须包含A命名空间的文件
//完全限定
//`\B\test`从绝对位置查找输出,假如是全局函数则`\test`
echo\B\test;//输出Btest
//限定名称
//这里已经通过`useA`申明了在这个文件可以通过`\A\...`使用A命名空间的函数
echoA\test;//输出Atest
//非限定名称
//非限定名称的函数`test`会从当前命名控件查找,即B
echotest;//输出Btest
//namespace关键字代表当前命名空间
echonamespace/test;
>
首先要注意的是命名空间只起申明作用,也就是在使用了命名空间的时候依然得把这个命名空间申明的那个文件包含进来。在使用中可以通过__NAMESPACE__来查看当前命名空间。
更多内容可以查看PHP官方文档
自动加载
每个文件既要申明命名控件又要手动include是非常不智能的事情,所以在自己的PHP系统或者框架中可以使用自动加载技术,让系统自己去找
最简单的方式是利用函数__autoload函数,但是这个函数只能在非命名控件下定义,也就是全局情况下:
function__autoload($class){
$dir='./';
set_include_path(get_include_path().PATH_SEPARATOR.$ids_dir);
$class=str_replace('\\','/',$class).'.php';
require_once($class);}
假如在已经有了命名空间的类中,可以使用函数spl_autoload_register来注册一个类中的方法来代替__autoload。
以上就是PHP中命名空间如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。