前回の記事では、サブ名前空間とサブ名前空間の定義方法について学びましたので、必要に応じて「php名前空間のサブ名前空間とは何ですか?」もお読みください。》。今回は参照クラス名の使い方を紹介しますので、必要に応じて参考にしてください。
まず例を見てみましょう。
file1.php ファイル コード
file2.php ファイル コード
この例をよく見てみましょう。この例で最も顕著なのは、foo::staticmethod()
です。どのような使用方法を使用する場合でも、「foo::staticmethod()
」を使用する必要があることに気づきましたか。これが何を意味するのか?詳しく調べてみましょう。
この例によれば、「staticmethod()
」は実際には静的メソッドの名前であり、「foo::」は「」に基づいていることがわかります。 foo()
」が解析されます。
PHP 名前空間のクラス名は、次の 3 つの方法で参照できます。
非修飾名、またはプレフィックスを含まないクラス名。たとえば、「$c=new foo();
」または「foo::staticmethod();
」などです。現在のネームスペースがspace
の場合、foo はspace\foo
に解決されます。 foo がグローバル コード、つまりどの名前空間にも含まれていないコードである場合、foo は foo として解析されます。
警告: ネームスペース内の関数または定数が定義されていない場合、修飾されていない関数または定数名はグローバル関数または定数名に解決されます。
修飾名、またはプレフィックスを含む名前 (例:$c = new espace\foo();
またはspace\foo::staticmethod();
。現在のネームスペースがspace
の場合、foo はspace\space\foo
に解決されます。 foo を使用するコードがグローバルであり、どの名前空間にも含まれていないコードの場合、foo はspace\foo
に解決されます。
完全修飾名、またはグローバル接頭辞演算子を含む名前 (例:$c = new \space\foo();#) # # または
\space\foo::staticmethod();。この場合、foo はコード内で常にリテラル名
(リテラル名)space\fooに解決されます。
完全修飾名を持つ関数は、クラスおよび定数を呼び出すときにコンパイル時に解決されます。
非完全修飾名は、インポート ルールに従ってコンパイル時に変換されます。
ネームスペース内では、インポート ルールに従って変換されないすべての修飾名の前に、現在のネームスペース名が付けられます。 以上です。他に知りたいことがある場合は、ここをクリックしてください。 → →以上がエディターはクラス名を引用するようにガイドします (php バージョン)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。