ホームページ  >  記事  >  バックエンド開発  >  php名前空間(コードと組み合わせた詳細な回答)

php名前空間(コードと組み合わせた詳細な回答)

亚连
亚连オリジナル
2018-05-17 14:37:101481ブラウズ

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)なので、わかりやすいかもしれません。

現在のブログ スペースを表す非修飾名を使用して、ここでブログ スペースを作成します。この呼び出しはインスタンス化後に解析されます。修飾名を使用して、インスタンス化後、この呼び出しは BlogArticleComment() に解析されます。クラスの前にバックスラッシュがないことに注意してください。完全修飾名を使用して、この呼び出しがインスタンス化後に解析されることを示します。クラスの前にバックスラッシュがある場合とバックスラッシュがない場合の違いに注意してください。

サンプルコードは以下の通りです:

[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の名前空間と自動読み込みの違いを詳しく紹介

PHPのスコープをコード付きで詳しく紹介

PHPのクロージャ関数() use()の詳しい使い方メソッド

以上がphp名前空間(コードと組み合わせた詳細な回答)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。