名前空間の宣言は、namespace キーワードを用いて行います。これを、ファイルの先頭に記述しなければなりません。 たとえば次のようになります。
例1 名前空間の定義
<?php
namespace MyProject::DB;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
名前空間の中にはクラスや定数、関数定義を含めることができます。 ただしそれら以外のコードを含めることはできません。
名前空間の定義は次のようなものです。
修飾されていないクラス名 (:: を含まない名前) は、実行時に次の手順で解決されます。
修飾されていない関数名 (:: を含まない名前) は、実行時にまず現在の名前空間で探され、 次にグローバル空間で探します。
修飾されていない定数名は、 まず現在の名前空間で探され、次にグローバル空間で探します。