名前空間内のすべてのクラスや関数は、どこからでも MyProject::DB::Connection や MyProject::DB::connect のようにフルネームで参照することができます。
例1 名前空間内の名前の使用法
<?php
require 'MyProject/Db/Connection.php';
$x = new MyProject::DB::Connection;
MyProject::DB::connect();
?>
名前空間を現在のコンテキスト (グローバル空間あるいは別の名前空間) にインポートするには use 演算子を使用します。 この演算子の構文は、次のようになります。
<?php
/* ... */
use Some::Name as Othername;
// シンプルな使用法
use Foo::Bar;
// これは、さきほどと同じ意味になります
use Foo::Bar as Bar;
?>
use はグローバルスコープでのみ使用可能です。 関数やクラスの内部では使用できません。 インポートされた名前が有効なのは、 インポートした箇所からそのファイルの最後までの間です。 混乱を避けるため、インポートはファイルの先頭で行うようにしましょう。
例2 名前空間のインポート、名前空間へのアクセス
<?php
require 'MyProject/Db/Connection.php';
use MyProject::DB;
use MyProject::DB::Connection as DbConnection;
$x = new MyProject::DB::Connection();
$y = new DB::connection();
$z = new DbConnection();
DB::connect();
?>
注意: インポート処理はコンパイル時にのみ行われ、 すべてのローカル名はコンパイラによって完全な名前に変換されます。 この変換は文字列で行うわけではないので、 コールバック関数の指定がインポートの影響を受けることはありません。