« 概要
サブ名前空間 »

名前空間の定義

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

PHP のコードならなんでも名前空間に含めることができますが、 実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイト、列挙型(Enum) を含む) とインターフェイス、関数、そして定数だけです。

名前空間を宣言するには、キーワード namespace を使用します。名前空間を含むファイルでは、他のコードより前にファイルの先頭で名前空間を宣言しなければなりません。 ただし declare キーワードは例外です。

例1 名前空間の宣言

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }

注意:

完全修飾名(つまり、バックスラッシュで始まる名前) は名前空間の宣言では許されません。 なぜなら、この構成要素は名前空間の相対名として解釈される式だからです。

名前空間の宣言より前に書くことが許されているコードは declare 文のみです。ソースファイルのエンコーディングを定義するために使用します。 さらに、PHP コード以外であっても名前空間の宣言の前に記述することはできません (スペースも同様です)。

例2 名前空間の宣言

<html>
<?php
namespace MyProject; // fatal error - namespace must be the first statement in the script

さらに、他の PHP の制御構造とは異なり、同一の名前空間を複数のファイルで定義することができます。 これにより、ひとつの名前空間の内容をファイルシステム上で分割することができます。

関連キーワード:
空間   宣言   コード   namespace   キーワード   declare   MyProject   概要   実際   影響   抽象   トレイト   列挙型   Enum   インターフェイス   定数   Connection   connect   修飾   バックスラッシュ   構成要素   相対   解釈   ソースファイル   エンコーディング
関連する関数・ページ:
language.namespaces.nested   language.namespaces   language.namespaces.definitionmultiple   language.namespaces.global   language.namespaces.fallback   language.namespaces.rationale