PHP 名前空間 namespace の定義方法の詳細な説明

黄舟
リリース: 2023-03-07 07:34:01
オリジナル
1053 人が閲覧しました

この記事では、主に PHPネームスペースネームスペースの定義方法と、PHP ネームスペースネームスペースとサブネームスペースの関連する注意事項をサンプル形式で詳細に分析します。 この記事の例では、PHP 名前空間名前空間を定義する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

名前空間を定義します

空間の名前付けについては、ここでは言葉で説明したくありません。より適切な説明は、次のとおりです。例:

For

例:

次のコードは「test.php」内のファイルです:

次に、3 つの異なる方法でアクセスします。これらの 3 つのアクセス プログラムを「index」という名前のファイルに書きました。 .php" 媒体:

方法 1:

namespace Index;
require 'test.php';
$T=new \Test\Test();
$T->Ttest();
ログイン後にコピー
結果は次のとおりです: これは Test のテストメソッドです

方法 2:

namespace Index;
namespace Test;
require 'test.php';
$T=new Test();
$T->Ttest();
ログイン後にコピー
結果は次のとおりです: これはTest のテスト メソッド テスト メソッド

方法 3:

namespace Index;
require 'test.php';
use Test\Test;
$T=new Test();
$T->Ttest();
ログイン後にコピー
結果は次のとおりです: これは Test のテスト メソッドです

注: 名前空間インデックスは書き込んでも書き込めなくても構いません。これは単なるスペースですIndex.php ファイルの名前。これら 3 つの方法で得られる結果は同じです。

サブ名前空間を定義する

定義: ディレクトリとファイル間の関係と同様に、PHP 名前空間でも階層的な名前空間名を指定できます。したがって、名前空間名を階層的に定義できます。

例は以下に示すとおりで、これは私がカスタマイズしたプロジェクト ディレクトリです:

one.php

namespace projectOne\one;
class Test{
    public function test(){
     return "this is a test program";
    }
}
ログイン後にコピー
one.php の Test クラスにある test() メソッドにアクセスするために、Two のコードは次のとおりです。以下のように:

Two.php

namespace projectOne\one;
require '../projectOne/One.php';
$O=new Test();
echo $O->test();
ログイン後にコピー

出力: これはテストプログラムです

複数の名前空間が同じファイルで定義されており、相互にアクセスします

test.php

namespace projectOne\one{
    class test{
      public function hello(){
        return "helloworld";
      }
    }
}
namespace projectOne\Two{
    class project{
      public function world2(){
        return "welcome to china";
      }
    }
    class project2 extends \projectOne\one\test{
      public function wo(){
        return "this is my test function ,it is name wo";
      }
    }
}
namespace projectOne\Two{
    $p=new project2();
    echo $p->wo()."<br>";
    echo $p->hello();
}
ログイン後にコピー

出力: これは私のテスト関数です名前を

helloworld

です

以上がPHP 名前空間 namespace の定義方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート