ホームページ  >  記事  >  バックエンド開発  >  PHP名前空間の名前空間定義の詳しい説明

PHP名前空間の名前空間定義の詳しい説明

小云云
小云云オリジナル
2018-03-20 09:52:051515ブラウズ

PHP では、同じ名前の関数またはクラスは許可されません。プロジェクト内でプログラマーが定義したクラス名や関数名で競合が繰り返されるのを防ぐために、PHP5.3 では名前空間の概念が導入されました。

1. 名前空間、つまりコードを異なる空間に分割する。異なる空間のクラス名は互いに独立しており、互いに競合しません。

php ファイルには複数の名前空間が存在でき、最初の名前空間の前にコードを含めることはできません。コンテンツ空間宣言の後のコードは、この名前空間 に属します。例:

<?php
echo 111;  //由于namespace前有代码而报错
namespace Teacher;
class Person{
  function __construct(){
   echo &#39;Please study!&#39;;
  }
}

2. 別の空間のクラスまたはメソッドを呼び出す場合は、名前空間を指定する必要があります。

例:

<?php
namespace Teacher;
class Person{
  function __construct(){
   echo &#39;Please study!<br/>&#39;;
  }
}
function Person(){
  return &#39;You must stay here!&#39;;
};
namespace Student;
class Person{
  function __construct(){
   echo &#39;I want to play!<br/>&#39;;
  }
}
new Person();     //本空间(Student空间)
new \Teacher\Person();   //Teacher空间
new \Student\Person();   //Student空间
echo \Teacher\Person();   //Teacher空间下Person函数

出力:


I want to play!
Please study!
I want to play!
You must stay here!

3. 名前空間に導入された他のファイルは、この名前空間に属さず、パブリック スペースまたはファイル自体で定義された名前空間に属します。 eexample:1.phpおよび2.phpファイルを定義します:

rreee

rreee

rreee

rreee

4今後の参照のために省略してください)


<?php  //1.php
class Person{
 function __construct(){
   echo &#39;I am one!<br/>&#39;;
  }
}


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

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