2012-04-02 19 views
2

一時的に名前空間を使用する方法はありますか? 私はフォームを作成するためにライブラリを使用しており、名前空間を使用しています。問題は、通常はページの途中でフォームを作成したいためです。つまり、グローバル名前空間にあります。一時的な名前空間

Blabla global namespace 
strlen('test'); // 4 

namespace Namespace 
{ 
    test(); 
} 

More global PHP 

そして、それは名前空間を参照してください持っている:私は

\名前空間ですべてを接頭辞に持つ、このライブラリの任意の関数を呼び出したい場合は、このような何かを行うにはPHPのいずれかの方法はありません\ test?

答えて

3

http://www.php.net/manual/en/language.namespaces.importing.php

<?php 
namespace foo; 
use My\Full\Classname as Another; 

// this is the same as use My\Full\NSname as NSname 
use My\Full\NSname; 

// importing a global class 
use ArrayObject; 

$obj = new namespace\Another; // instantiates object of class foo\Another 
$obj = new Another; // instantiates object of class My\Full\Classname 
NSname\subns\func(); // calls function My\Full\NSname\subns\func 
$a = new ArrayObject(array(1)); // instantiates object of class ArrayObject 
// without the "use ArrayObject" we would instantiate an object of class foo\ArrayObject 
?> 

これはあなたが得ることができる最も近いについてです - 一時的にデフォルトの名前空間を変更する方法はありません。

+0

これで十分かもしれません。簡単な質問:私はオートローダ経由でインポートされたグローバルな名前空間で一連のクラスを使用しています。さて、私が最初に使用してそれらを宣言しても、呼び出されるとまだロードされていれば、それはパフォーマンス上の何かを変えるでしょうか? –

+0

それらは呼び出されたときではなく、useステートメントによってロードされます。それはあなたのオートローダーに含まれている別のファイルだけで、パフォーマンスを改善するものではありません。 –