自分の関数内で名前空間を使用しようとすると、解析エラーが発生します
require('/var/load.php');
function go(){
use test\Class;
$go = 'ok';
return $go;
}
echo go();
から インポートのスコープ規則
Useキーワードは、ファイルの最も外側のスコープ(グローバルスコープ)または名前空間宣言内で宣言する必要があります。これは、インポートが実行時ではなくコンパイル時に行われるため、ブロックスコープにできないためです。
したがって、このように配置する必要があり、使用はグローバルレベルで指定する必要があります
require('/var/load.php');
use test\Class;
function go(){
$go = 'ok';
return $go;
}
echo go();
以下のマニュアルの例5を確認してください http://php.net/manual/en/language.namespaces.importing.php のマニュアルを参照してください
マニュアル から:
use
キーワードは、ファイルの最も外側のスコープ(グローバルスコープ)または名前空間宣言内で宣言する必要があります。