ホームページ  >  記事  >  バックエンド開発  >  PHP 名前空間の名前空間定義とインポートのユースケース分析

PHP 名前空間の名前空間定義とインポートのユースケース分析

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-18 10:24:241336ブラウズ

今回は、PHP 名前空間名前空間定義とインポート使用例の分析をお届けします。PHP 名前空間名前空間定義とインポート使用に関する 注意点 は何ですか。以下は実際的なケースです。見てみましょう。

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/>';
  }
}
function Person(){
  return 'You must stay here!';
};
namespace Student;
class Person{
  function construct(){
   echo 'I want to play!<br/>';
  }
}
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. 名前空間に導入された他のファイルは、この名前空間に属さず、パブリック スペースまたはファイル自体で定義された名前空間に属します。

例: 最初に 1.php と 2.php ファイルを定義します:

<?php  //1.php
class Person{
 function construct(){
   echo 'I am one!<br/>';
  }
}
<?php
namespace Newer;
require_once './1.php';
new Person();  //报错,找不到Person;
new \Person();  //输出 I am tow!;
<?php  //2.php
namespace Two
class Person{
 function construct(){
   echo 'I am tow!<br/>';
  }
}
<?php
namespace New;
require_once './2.php';
new Person();  //报错,(当前空间)找不到Person;
new \Person();  //报错,(公共空间)找不到Person;
new \Two\Person(); //输出 I am tow!;

4. use の使い方を見てみましょう:

(使用後の quote は省略できます)

namespace School\Parents;
class Man{
  function construct(){
   echo 'Listen to teachers!<br/>';
  }
}
namespace School\Teacher;
class Person{
  function construct(){
   echo 'Please study!<br/>';
  }
}
namespace School\Student;
class Person{
  function construct(){
   echo 'I want to play!<br/>';
  }
}
new Person();     //输出I want to play!
new \School\Teacher\Person(); //输出Please study!
new Teacher\Person();   //报错
----------
use School\Teacher;
new Teacher\Person();   //输出Please study!
----------
use School\Teacher as Tc;
new Tc\Person();   //输出Please study!
----------
use \School\Teacher\Person;
new Person();   //报错
----------
use \School\Parent\Man;
new Man();   //报错
この記事のケース あなたはこの方法をマスターしました。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

PHPでエントリファイルを非表示にする手順の詳細な説明

PHP+MySQL 一定期間内にデータ統計を最適化する手順の詳細な説明

PHPは関数staticを使用します変数を使用して指定された反復回数を実装する手順の詳細な説明

以上がPHP 名前空間の名前空間定義とインポートのユースケース分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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