我目前在代码审查期间遇到过这个命名空间代码块,我看起来像这样。我是在youtube中看到的名称空间和示例的新手,教程没有类似的例子。
我只了解第一个命名空间意味着代码块将在全局空间中。但第二个命名空间究竟意味着什么?
namespace
{
class Logging{}
}
namespace Admin\Logging
{
class Logged_in
{
public function __construct()
{
/* some code here */
}
}
/* other classes here */
}
感谢您的帮助。
答案 0 :(得分:1)
第二个声明是sub namespace或嵌套的命名空间。
在您的示例中,班级Logged_in
的规范名称为\Admin\Logging\Logged_in
答案 1 :(得分:0)
名称空间的语法类似于目录层次结构:反斜杠(\
)充当子名称空间的分隔符。
因此,第二个表示法表示Admin
命名空间的定义,以及其中Logging
命名空间的定义。
有关详细信息,请参阅documentation。
答案 2 :(得分:0)
要回答我自己的问题,希望我做对了......
在外行人的术语中,Admin \ Logging意味着“我在哪里可以找到此文件”
|--admin
| |-- Logging.php
那个
namespace
{
class Logging {}
}
因为两个命名空间都在同一个文件中,所以它可以作为一个库并自动加载......
Wew ...我不是真正的技术,但这就是我的理解.....感谢所有人的帮助。
感谢:http://www.mwop.net/blog/254-Why-PHP-Namespaces-Matter.html