background image

//调用 Article 空间的 Comment 类
$article_comment = new \Article\Comment();
?>

可以看到,在 MessageBoard 空间中调用 article 空间里的 Comment 类时,使用了一种像文

 

件路径的语法: \空间名\元素名
除了类之外,对函数和常量的用法是一样的,下面我为两个空间创建了新的元素,并在
MessageBoard 空间中输出了它们的值。
代码如下:

<?php
namespace Article;
const PATH = '/article';
function getCommentTotal() {
return 100;
}
class Comment { }

namespace MessageBoard;
const PATH = '/message_board';
function getCommentTotal() {
return 300;
}
class Comment { }
//调用当前空间的常量、函数和类
echo PATH; ///message_board
echo getCommentTotal(); //300
$comment = new Comment();
//调用 Article 空间的常量、函数和类
echo \Article\PATH; ///article
echo \Article\getCommentTotal(); //100
$article_comment = new \Article\Comment();
?>

然后我的确得到了 Article 空间的元素数据。

子空间
命名空间的调用语法像文件路径一样是有道理的,它允许我们自定义子空间来描述各个
空间之间的关系。
抱歉我忘了说,article 和 message board 这两个模块其实都是处于同一个 blog 项目内。如果
用命名空间来表达它们的关系,是这样:

 

复制代码 代码如下: