这个PHP命名空间代码块是什么意思?

时间:2013-02-15 03:05:22

标签: php namespaces

我目前在代码审查期间遇到过这个命名空间代码块,我看起来像这样。我是在youtube中看到的名称空间和示例的新手,教程没有类似的例子。

我只了解第一个命名空间意味着代码块将在全局空间中。但第二个命名空间究竟意味着什么?

namespace
{
     class Logging{} 
}

namespace Admin\Logging
{
      class Logged_in
      {
          public function __construct()
          {
                /* some code here */
          }
      }

      /* other classes here */
}

感谢您的帮助。

3 个答案:

答案 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