2

私は現在、コードレビュー中にこの名前空間コードブロックに遭遇しました。これは、このようなものです。私はYouTubeで見た名前空間と例が初めてで、チュートリアルには同様の例がありません。

最初の名前空間は、コード ブロックがグローバル空間にあることを意味することだけを理解しています。しかし、2 番目の名前空間は正確には何を意味するのでしょうか?

namespace
{
     class Logging{} 
}

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

      /* other classes here */
}

ご協力ありがとうございました。

4

3 に答える 3

1

2 番目の宣言は、サブ名前空間またはネストされた名前空間です。

あなたの例では、クラスLogged_inの正規名は\Admin\Logging\Logged_in

于 2013-02-15T03:10:02.420 に答える
0

私自身の質問に答えるために、私がこれを正しく理解したことを願っています...

素人の用語では、Admin\Loggingは「このファイルはどこにありますか」を意味します

|--admin
|  |-- Logging.php

そしてそれ

namespace
{
    class Logging {}
}

両方の名前空間が同じファイルにあるため、ライブラリとして機能し、自動ロードできます...

うわー...私は本当に技術的ではありませんが、それは私がそれを理解する方法です.....あなたの助けに感謝します。

おかげで:http ://www.mwop.net/blog/254-Why-PHP-Namespaces-Matter.html

于 2013-02-15T03:59:14.607 に答える
0

名前空間の構文は、ディレクトリ階層に似ています。バックスラッシュ ( \) は、サブ名前空間の区切り記号として機能します。

したがって、2 番目の表記は、Admin名前空間とその中の名前空間の定義を示しLoggingます。

詳細については、ドキュメントを参照してください。

于 2013-02-15T03:20:02.280 に答える