php 名前空間の使用法: [namespace Article;] は、Article という名前の名前空間を作成することを意味します。現在のスクリプト ファイルの最初の名前空間の前にコードを置くことはできないことに注意してください。
ネームスペースの最も明確な目的の 1 つは、名前の重複の問題を解決することです。PHP では、2 つの関数またはクラスが同じ名前を持つことは許可されません。そうしないと、致命的なエラーが発生します。この場合、名前の重複を避ければ解決できますが、最も一般的な方法はプレフィックスを合意することです。
(推奨チュートリアル: php ビデオ チュートリアル)
名前空間は、コードをさまざまな空間 (領域) に分割し、各空間の定数、関数、クラス (面倒なので、以下では名前が互いに影響しない要素と呼びます)これは、よく言及される「カプセル化」の概念に似ています。
名前空間を作成するには、次のように名前空間キーワードを使用する必要があります:
<?php //创建一个名为'Article'的命名空间 namespace Article; ?>
現在のスクリプト ファイルの最初の名前空間の前にコードを置くことはできないことに注意してください。次の書き方は間違っています:
例 1
//在脚本前面写了一些逻辑代码 <?php $path = "/"; class Comment { } namespace Article; ?>
例 2
</html> <?php namespace Article; ?>
なぜ最初の名前空間を言いたいのですか?同じスクリプト ファイル内に複数の名前空間を作成できるためです。
以下では、2 つの名前空間を作成し、これら 2 つの空間のそれぞれに Comment クラス要素を追加しました。
<?php //创建一个名为'Article'的命名空间 namespace Article; //此Comment属于Article空间的元素 class Comment { } //创建一个名为'MessageBoard'的命名空间 namespace MessageBoard; //此Comment属于MessageBoard空间的元素 class Comment { } ?>
異なるスペース間で他の要素を直接呼び出すことはできません。名前空間構文を使用する必要があります。
<?php namespace Article; class Comment { } namespace MessageBoard; class Comment { } //调用当前空间(MessageBoard)的Comment类 $comment = new Comment(); //调用Article空间的Comment类 $article_comment = new \Article\Comment(); ?>
メッセージボード スペースの記事スペースで Comment クラスを呼び出すときに、ファイル パスに似た構文が使用されていることがわかります: \スペース名\要素名
クラスを除き、関数と定数の使い方は同じですが、以下では2つのスペースに新しい要素を作成し、その値をメッセージボードスペースに出力します。
<?php namespace Article; const PATH = '/article'; function getCommentTotal() { return 100; } class Comment { } namespace MessageBoard; const PATH = '/message_board'; function getCommentTotal() { return 300; } class Comment { } //调用当前空间的常量、函数和类 echo PATH; ///message_board echo getCommentTotal(); //300 $comment = new Comment(); //调用Article空间的常量、函数和类 echo \Article\PATH; ///article echo \Article\getCommentTotal(); //100 $article_comment = new \Article\Comment(); ?>
これで、Article スペースの要素データを取得できました。
関連する推奨事項: php トレーニング
以上がphp名前空間の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。