ホームページ >バックエンド開発 >PHPチュートリアル >名前空間_PHP チュートリアル
変数、関数、クラスに名前を付けるのは非常に難しく、変数の名前を理解しやすくする必要があることに加えて、その名前が他の場所で使用されていないかどうかも考慮する必要があります。質問は基本的な質問です。コードを再利用することを検討する場合、後続のプロジェクトのコードでは、使用した名前を使用しないようにする必要があります。一般的に、再利用可能なコードは常に関数またはクラスに含まれており、多くの名前を扱う必要があります。ただし、名前の競合は関数とクラスの間でも発生する可能性があります。これを回避するには、すべてのクラスに接頭辞を付けるか、名前空間ステートメントを使用します。
Namespace キーワードはコード ブロックの名前を指定します。コード ブロックの外側では、スクリプトは演算子:: に加えて名前空間の名前を使用して、コード ブロック内の静的クラス メンバーを参照する必要があります。名前空間は宣言しません。これはデフォルトです。この方法は、コードがよりコンパクトで読みやすくなります。
階層型 (ネストされた) 名前空間を作成できるかどうか疑問に思われるかもしれませんが、名前空間名の後にコロンを追加すると、名前空間内でコロンを再度呼び出すことができます。最初と最後の文字でない限り、または別のコロンの後に続く限り、名前空間名のコロンは PHP にとって意味を持ちませんが、論理領域ブロックを区別するために使用する場合は、コード内で親子関係を示すのに最適です。
/* 注: これを使用できます:
名前空間動物:犬 {}
名前空間動物:豚 {}
親子関係を示すにはコロンを使用します。
*/
名前空間ステートメント内には関数、クラス、または定数定義以外のものを含めることはできません。これにより、名前空間はオブジェクト指向に最適です。クラスの定数と同じ構文です。
例 6.17 は、名前空間の使用方法を示しています。
リスト 6.17 名前空間の使用
名前空間 core_php:utility
{
クラステキストエンジン
{
public function uppercase($text) file://uppercase
{
return(strtoupper($text));
}
}
//非 OO インターフェースの作成 非 OO インターフェースを作成します
関数大文字($text)
{
$e = 新しいテキストエンジン;
return($e->大文字($text));
}
}
//名前空間のクラスをテストする 名前空間のクラスをテストします
$e = 新しい core_php:utility::textEngine;
print($e->uppercase("オブジェクトから") . "
");
//名前空間の関数をテストする 名前空間の関数をテストします
print(core_php:utility::uppercase("from function") . "
");
//クラスをグローバル名前空間に取り込みます クラスをグローバル名前空間に取り込みます
core_php:utility からクラス textEngine をインポートします;
$e2 = 新しいテキストエンジン;
?>
Import ステートメントは、名前空間の特定の部分をグローバル名前空間にインポートします。
単一の名前空間のメンバーをインポートするには、型を定数、関数、またはクラスとして指定し、メンバーの名前を記述します。
//インポートクラスXXX
など
特定のタイプのすべてのメンバーをインポートする場合は、名前の代わりに * を使用できます。
//たとえば、import constant * はすべての定数をインポートします
すべてのタイプのすべてのメンバーをインポートしたい場合は、* を使用するだけです。
// import など *
メンバーの後に from キーワードを使用して、名前空間の名前を追加します。
//core_php:utility;
からインポートクラスtextEngineなど
つまり、例 6.17 のように、 import * from myNamespace または import class textEngine from core_php:utility のようなステートメントを記述する必要があります。
www.bkjia.com