ネームスペースの構造はファイル システムの構造と非常によく似ています。フォルダーにはサブフォルダーを含めることができ、ネームスペースは各スペース間の所有権関係を記述するサブスペースを定義することもできます。前の章では 名前空間とは何ですか? を紹介しました。そして、PHP 名前空間の基本的な応用です、ここで名前空間のサブスペースとパブリックスペースについて理解し始めます。
次の例を使用して、サブスペースとは何かを説明します
たとえば、cart と order の 2 つのモジュールはどちらも同じショップ プロジェクト内にあり、その関係は名前空間サブスペースを通じて表現されます。
コードは次のとおりです:
<?php namespace shop\cart; //命名空间表示处于 shop 项目下的 cart class Test { } namespace shop\order; //命名空间表示处于 shop 项目下的 order class Test { //申明与上面空间相同的类 } $test =new Test(); //调用当前的类 $cart = new \shop\cart\Test(); //调用shop\cart空间的类 ?>
名前空間の部分空間では、cnmywwwshop などの多くのレベルを定義することもできます。マルチレベルのサブスペースの主張は、多くの場合、会社のドメイン名を逆にして、その後にプロジェクト名を使用して行われます。この利点は、ドメイン名がインターネット上で繰り返されず、インターネット上に同じ名前の名前空間が存在せず、どの企業の特定のプロジェクトであるかを識別できることです。強力な宣伝効果があります。
名前空間のパブリック空間
名前空間のパブリック空間は、実際、名前空間を定義していないメソッド、クラスライブラリ、定数がデフォルトでパブリック空間に属していることが、その理由を説明するのに簡単です。以前のバージョンでの記述 ほとんどのコードは PHP5.3 以降のバージョンで実行できます。また、パブリックスペースのコードセグメントが、ある名前空間に導入された後は、パブリックスペースのコードセグメントは、どの名前空間にも属さなくなる。たとえば、スクリプト ファイル common.php を宣言し、そのファイル内で関数とクラスを宣言します。
コードは次のとおりです:
<?php function fun(){ } class Demo{ } ?>
別のPHPファイルを作成し、スクリプトファイルcommon.phpを名前空間に導入しますが、スクリプト内のクラスと関数はこの名前空間に属しません。このスクリプトで他の名前空間が定義されていない場合、その要素は常にパブリック空間にあります。
コードは次のとおりです:
<?php namespace cn\my; include 'common.php'; //引入当前目录下的文件 $demo = new Demo; //出现致命错误:找不到 cn\my\Demo类 $demo = new \Demo(); //正确的方式 加上 \ var_dump(); // 错误,系统函数在公共空间 \var_dump(); // 正确,使用了 \ ?>
注: パブリック スペースを呼び出す方法は、要素名の前に を直接追加することです。そうしないと、PHP パーサーはユーザーがその要素の下にある要素を呼び出していると認識します。現在の空間。カスタム要素に加えて、PHP に付属する要素もあります。これらはすべてパブリック スペースに属します。実際、パブリックスペースの関数や定数は を付けなくても普通に呼び出すことができますが、要素が配置されている領域を正しく区別するために、関数を呼び出す際に を付けることを推奨します。
ここでは、名前空間のサブスペースとパブリック スペースを紹介します。次のセクションでは、名前空間の 3 つの名前と用語について説明します。
【おすすめ関連チュートリアル】
1.「php.cn Dugu Jiijian (4) - PHP ビデオチュートリアル」
2. 名前空間: 同じ名前、同じ性別ですが、異なる時間と空間に属します
入門からマスターまでの PHP プログラミングに関する完全なチュートリアル セット
以上がPHP 名前空間: サブスペースとパブリック スペースのインスタンスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。