命名空间

Posted 叶夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命名空间相关的知识,希望对你有一定的参考价值。

刚开始听到命名空间的时候,我感觉是一个好高大上的名字,但它就是一种封装事物的方法;在它之后是空间的名称;但我感觉命名空间其实就是用来区分你设置的类名的,

要创建某个命名空间下的类的对象,必须写出完整的路径;定义对象:1)直接定义对象:new; 2)定义对象用use关键字;

在同一个php文件中,可以先后使用多个不同名称的命名空间

<?php

namespace lovo;

header(‘content-type:text/html;charset=utf-8‘);
class AAA{
public function __toString(){
return ‘我是类AAA-1‘;
}
}
echo ‘<br><br>‘;
echo ‘当前的命名空间:‘.__NAMESPACE__;

namespace chengdu;
class AAA{
public function __toString(){
return ‘我是类AAA-2‘;
}
}
echo ‘<br><br>‘;
echo ‘当前的命名空间:‘.__NAMESPACE__;
echo ‘<br><br>‘;

 ?>

__NAMESPACE__要用在当前使用了namespace命名空间的页面。

下面的代码是在另一个页面引用。

 <?php

include_once("testclass21.php");

// 要创建某个命名空间下的类的对象,必须写出完整的路径
// 下面这个是示例直接定义某个命名空间下的类的对象
$aaa = new \lovo\AAA();
echo $aaa;

echo ‘<br><br>‘;
// 下面是定义对象的第二种方式,使用use关键字
// 定义到将该命名空间下的类引入到当前,那么可以像普通的类一样进行初始化定义
use lovo\AAA as BBB;
$ccc = new BBB();
echo $ccc;

echo ‘<br><br>‘;
$ddd = new chengdu\AAA();
echo $ddd;

echo ‘<br><br>‘;
echo ‘当前的命名空间:‘.__NAMESPACE__;//得不到结果
?>

以上是关于命名空间的主要内容,如果未能解决你的问题,请参考以下文章

模棱两可的类命名空间问题

如何在C ++中将枚举导入不同的命名空间?

为什么原始数据类型在不包含System命名空间的情况下工作

有没有办法关闭代码片段中的命名建议?

XML 属性未获取命名空间前缀

如何处理XML命名空间