命名空间
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__;//得不到结果
?>
以上是关于命名空间的主要内容,如果未能解决你的问题,请参考以下文章