-------------------------------- -- ------------------------------------------------ -- --------------
1. PHP の名前空間は主に、定数、関数、クラスという 3 つの競合問題を解決します
一般的な理解: 名前空間は、ディレクトリを構築し、外部と区別するためにディレクトリ内の名前空間の下にコードを配置することと同じです。
リーリー注: 複数のファイルが同じ名前空間を使用できる場合を除き、名前空間の前にコードを置くことはできませんが、同じ名前空間で定義された内容が競合することはできません。名前空間は、名前空間myselfgoodなどのサブ名前空間をサポートします。これは、マルチレベルのディレクトリの概念に相当します。
2. 同一ファイル内に複数の名前空間が存在する場合
1.
リーリー2.
リーリー同じファイル内で複数の名前空間を使用することは、主に複数の PHP スクリプトを同じファイルにマージするプロジェクトで使用されます。実際には、その使用は推奨されません。
3. 名前解決ルール (いくつかの概念)
1. 非修飾名: 名前には名前空間の区切り文字が含まれていません (例: 私自身
)2. 修飾された名前: 名前には名前空間区切り文字が含まれています (例: nihaoshijie
)3. 完全修飾名: 名前には区切り文字が含まれており、次のように名前空間区切り文字で始まります: nihaoshijie (つまり、絶対パスの概念)
------------------------------------------------- --------------------------------------------------
1. 名前空間 Zend\Http\PhpEnvironment;
このコードは、Zend\Http\PhpEnvironment という名前のドメイン名を定義していると理解できます。
定義後、以下で宣言されたクラス、インターフェース、constなどはすべて宣言された「ドメイン」内にあります。名前空間を宣言するインクルード ファイルを参照する場合、そのファイル内で何かを呼び出す場合は、次のことを行う必要があります:
現在のスクリプトをこのドメイン名に合わせて調整します。それ以外の場合は、namespace の完全な名前を使用する必要があります。
たとえば、inc.php ファイル:
namespace Zend\Http\PhpEnvironment;
class Bar {}// クラス
を定義し、他のファイルから呼び出される場合:
// Foo にアクセスする最初の方法は、次のとおりです。フルネーム
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();
// Foo
名前空間にアクセスする2番目の方法 Foo; // 現在のスクリプトをnsドメインに合わせて調整します。 Foo の名前空間宣言は最初の文になければなりません
require 'inc.php';
$foo = new Bar();
2 use キーワードの目的は、ns:
のエイリアスを使用することです。たとえば、上記
/ / Foo にアクセスする最初の方法は、フルネームを使用することです
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();
uses を使用した後
use \Zend\ Http\PhpEnvironment as pe; // エイリアスを定義します
$foo = new \pe\Bar(); // 元の
を短いエイリアスに置き換えます。以下を....として省略すると、たとえば上記の最後のセクションのテキストに直接置き換えることができます:
use \Zend\Http\PhpEnvironment; //エイリアスを定義します
$foo = new \PhpEnvironment\Bar (); //元のエイリアスを短いエイリアスに置き換えます
================================== ==============
公式 PHP マニュアルの関連コンテンツ:
PHP では、名前空間は、クラスや関数などの再利用可能なコードを作成するときに発生する 2 種類の問題を解決するために使用されます。クラス ライブラリまたはアプリケーション:
1 . ユーザーが作成したコードと PHP の内部クラス/関数/定数またはサードパーティのクラス/関数/定数の間で名前が競合します。
2. ソース コードの可読性を向上させるために、非常に長い識別子名 (通常は最初の種類の問題を軽減するために定義される) のエイリアス (または短い) 名を作成します。
PHP 名前空間は、関連するクラス、関数、定数をグループ化する方法を提供します。
PHP 名前空間は、エイリアスまたはインポートの 2 つの使用方法をサポートしています。クラス名にエイリアスを使用する方法と、名前空間名にエイリアスを使用する方法です。エイリアスは、演算子を使用して実装されます。 ...本文の続き>>
文法は問題ありません。
PHP のバージョンは何ですか? PHP は、バージョン 5.3.0 以降の名前空間をサポートします。 PHP のバージョンが低い可能性があります。