変数、関数、クラスに名前を付けるのは難しい場合があります。変数のわかりやすい名前を考慮する必要があるだけでなく、その名前が他の場所で使用されていないかどうかも考慮する必要があります。コードの再利用を検討する場合、一般的に、再利用可能なコードは常に関数またはクラスに含まれており、発生する可能性のある多くの名前の競合に対処する必要があります。ただし、関数とクラスの間でも名前の競合が発生する可能性があります。これを回避するには、すべてのクラスに接頭辞を付けるか、コード ブロックの外側で
Namespace キーワードを使用します。スクリプトは、operator:: に続いて名前空間の名前を使用してコード ブロックを参照する必要があります。名前空間内のコードは名前空間を宣言する必要がなく、それ自体がデフォルトのメソッドです。プレフィックスを追加するよりも優れています。コードはよりコンパクトで読みやすくなります。
階層型 (ネストされた) 名前空間を作成できるかどうか疑問に思うかもしれませんが、答えは「いいえ」です。名前にコロンを使用しなくても、変数、関数、クラスを再度呼び出すことができます。ただし、名前空間名のコロンは、最初の文字、最後の文字、または別のコロンの後に続くものでない限り、PHP にとっては意味がありません。ただし、論理ブロックを区別するためにこれらを使用すると、コード内の親子関係をわかりやすく説明できます。
/* 注: 次のように使用できます。 {}
親子関係を示すためにコロンを使用します。
*/
関数、クラス、または定数定義以外のものを名前空間ステートメントに含めることはできません。これにより、古い関数を改善するためにそれらを使用できなくなります。名前空間内の定数は、クラス内の定数と同じ構文を使用します。
名前空間の使用方法を示します。
namespace core_php:utility
{
class textEngine
{
public function uppercase($text) file://uppercase
{
return(strtoupper($text))]
//make非 OO インターフェイス 非 OO インターフェイスを作成します
function uppercase($text)
{
$e = new textEngine;
}
}
//名前空間のクラスをテスト 名前空間のクラスをテストします
$e = new core_php:utility::textEngine;
print($e->uppercase("from object") . "
"); test function in namespace 名前空間の関数をテストします
print(core_php:utility::uppercase("from function") . "
");
//クラスをグローバル名前空間にインポートします クラスをグローバル名前空間にインポートします
import class textEngine from core_php:utility;
$e2 = new textEngine;
?> Import ステートメントは、名前空間の特定の部分をグローバル名前空間にインポートします。定数、関数、またはクラスの場合は、メンバーの名前を記述します;
//たとえば、クラス XXX をインポートします
特定の型のすべてのメンバーをインポートする場合は、名前の代わりに * を使用できます;
//たとえばすべての定数をインポートするには、import constant * を使用します。すべての型のすべてのメンバーをインポートする場合は、* を使用します。//たとえば、import *
メンバーの後に、from キーワードと名前空間の名前を使用します。 //たとえば、 import class textEngine from core_php:utility;
つまり、例 6.17 のように、 import * from myNamespace または import class textEngine from core_php:utility のようなステートメントを記述する必要があります。
http://www.bkjia.com/PHPjc/314213.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/314213.html
技術記事
変数、関数、クラスに名前を付けるのは非常に難しく、変数の名前を理解しやすくする必要があることに加えて、その名前が他の場所で使用されていないかどうかも考慮する必要があります。