命名空间的作用与使用方法

namespace即“命名空间”,也称“名称空间” 、”名字空间”。如果两个人写的库文件中出现同名的变量或函数(不可避免)

,使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念。
命名空间:实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体

分别放在各个命名空间中,从而与其他全局实体分隔开来。
命名空间的作用:是建立一些互相分隔的作用域,把一些全局实体分隔开来。
命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是人们设立若干子目录,

把文件分别放到不同的子目录中,不同子目录中的文件可以同名。调用文件时应指出文件路径。

如以下例子,在同一个文件中将两个同名方法分别放在两个命名空间中,类似将两个同名文件放在两个不同的目录下,

namespace aaa;
function a(){
 echo "a-a";
}
namespace b;
function a(){
echo 'b-a';
}

以下为调用各个命名空间中的元素的方法:

\aaa\a();//调用aaa命名空间中的方法a;调用不同命名空间中的方法:\命名空间名\方法名();
use aaa as acd;
acd\a();//调用aaa命名空间中的方法a;
echo '<br/>';
//use b;
a();//调用b命名空间中的方法a;
echo '<br/>';
use aaa;
aaa\a();//调用aaa命名空间中的方法a;

当两个不同的文档使用相同的元素名时,就会发生命名冲突。命名空间可以避免这个问题,例如
a.php

namespace think;
class a{
public function b(){
echo 'think-a-b';
}
}

b.php

namespace think2;
class a{
public function b(){
echo 'think2-a-b';
}
}

c.php

require 'a.php';
require 'b.php';
use think\a;
$obj_a=new a();
$obj_a->b();
echo '<br/>';
use think2\a as b;
$obj_b=new b();
$obj_b->b();
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值