ホームページ  >  記事  >  バックエンド開発  >  PHP 名前空間: サブスペースとパブリック スペースのインスタンスの詳細な説明

PHP 名前空間: サブスペースとパブリック スペースのインスタンスの詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-05-18 15:52:222730ブラウズ

ネームスペースの構造はファイル システムの構造と非常によく似ています。フォルダーにはサブフォルダーを含めることができ、ネームスペースは各スペース間の所有権関係を記述するサブスペースを定義することもできます。前の章では 名前空間とは何ですか? を紹介しました。そして、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 &#39;common.php&#39;;  //引入当前目录下的文件
 $demo = new Demo;    //出现致命错误:找不到 cn\my\Demo类
 $demo = new \Demo(); //正确的方式  加上 \
 var_dump();   // 错误,系统函数在公共空间
 \var_dump();  // 正确,使用了 \
?>

注: パブリック スペースを呼び出す方法は、要素名の前に を直接追加することです。そうしないと、PHP パーサーはユーザーがその要素の下にある要素を呼び出していると認識します。現在の空間。カスタム要素に加えて、PHP に付属する要素もあります。これらはすべてパブリック スペースに属します。実際、パブリックスペースの関数や定数は を付けなくても普通に呼び出すことができますが、要素が配置されている領域を正しく区別するために、関数を呼び出す際に を付けることを推奨します。

ここでは、名前空間のサブスペースとパブリック スペースを紹介します。次のセクションでは、名前空間の 3 つの名前と用語について説明します。

【おすすめ関連チュートリアル】

1.「php.cn Dugu Jiijian (4) - PHP ビデオチュートリアル

2. 名前空間: 同じ名前、同じ性別ですが、異なる時間と空間に属します

3.

入門からマスターまでの PHP プログラミングに関する完全なチュートリアル セット

以上がPHP 名前空間: サブスペースとパブリック スペースのインスタンスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。