phpnamespaceでは、スペースの 3 つの名前 (非修飾名、修飾名、完全修飾名、および PHP とは) の用語を理解しておく必要があります。それらを解析します。公式ドキュメントは非常に優れているので、それを理解することで以下の内容を学ぶのに非常に役立ちます。ネームスペースのサブスペースとパブリック スペースについては前に学びましたが、ネームスペースの呼び出し構文はファイル パスに似ており、サブスペースをカスタマイズして各スペース間の関係を記述することができます。 名前空間内の 3 つの名前の用語は次のとおりです: 1. 非修飾名、または $comment = new Comment(); などのプレフィックスを含まないクラス名。現在の名前空間が BlogArticle の場合、Comment は BlogArticleComment として解析されます。コメントを使用するコードに名前空間 (グローバル空間) のコードが含まれていない場合、コメントはコメントとして解析されます。
2. 修飾名、またはプレフィックスを含む名前 ($comment = new ArticleComment(); など)。現在の名前空間が Blog の場合、Comment は BlogArticleComment として解析されます。コメントを使用するコードに名前空間 (グローバル空間) のコードが含まれていない場合、コメントはコメントとして解析されます。 3. 完全修飾名、またはグローバル接頭辞operator
を含む名前 ($comment = new ArticleComment(); など)。この場合、Comment はコード内で常にリテラル名 ArticleComment に解決されます。 実際、これら 3 つの名前は、ファイル名 (comment.php など)、相対パス名 (./article/comment.php など)、絶対パス名 (/blog/article/comment など) と比較できます。 .php)なので、わかりやすいかもしれません。 サンプルコードは以下の通りです:[html] view plain copy <?php //创建空间Blog namespace Blog; class Comment { } //非限定名称,表示当前Blog空间 //这个调用将被解析成 Blog\Comment(); $blog_comment = new Comment(); //限定名称,表示相对于Blog空间 //这个调用将被解析成 Blog\Article\Comment(); $article_comment = new Article\Comment(); //类前面没有反斜杆\ //完全限定名称,表示绝对于Blog空间 //这个调用将被解析成 Blog\Comment(); $article_comment = new \Blog\Comment(); //类前面有反斜杆\ //完全限定名称,表示绝对于Blog空间 //这个调用将被解析成 Blog\Article\Comment(); $article_comment = new \Blog\Article\Comment(); //类前面有反斜杆\ //创建Blog的子空间Article namespace Blog\Article; class Comment { } ?>
PHPの名前空間と自動読み込みの違いを詳しく紹介
PHPのクロージャ関数() use()の詳しい使い方メソッド
以上がphp名前空間(コードと組み合わせた詳細な回答)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。