今回は、PHP 名前空間名前空間定義とインポート使用例の分析をお届けします。PHP 名前空間名前空間定義とインポート使用に関する 注意点 は何ですか。以下は実際的なケースです。見てみましょう。
PHP では、同じ名前の関数またはクラスは許可されません。プロジェクト内でプログラマーが定義したクラス名や関数名で競合が繰り返されるのを防ぐために、PHP5.3 では名前空間の概念が導入されました。
1. 名前空間、つまりコードを異なる空間に分割する。異なる空間内のクラス名は互いに独立しており、互いに競合しません。 php ファイルには複数の名前空間が存在でき、最初の名前空間の前にコードを含めることはできません。コンテンツ空間宣言後のコードは、この名前空間に属します。例: <?php
echo 111; //由于namespace前有代码而报错
namespace Teacher;
class Person{
function construct(){
echo 'Please study!';
}
}
例: <?php
namespace Teacher;
class Person{
function construct(){
echo '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!
例: 最初に 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!;
(使用後の 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でエントリファイルを非表示にする手順の詳細な説明以上がPHP 名前空間の名前空間定義とインポートのユースケース分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。