使用"global-namespace";

enr*_*rey 4 php namespaces

我只是想知道是否有一种方法可以使类使用"use"关键字在全局命名空间中运行,因此该类只能从类外部表现为命名空间类.就像是:

namespace wherever\somewhere\deep\deep\inside;
use \; // root namespace.. note: this doesn't work
class stuff{
//....
}
Run Code Online (Sandbox Code Playgroud)

任何人?

SDC*_*SDC 18

使用全局命名空间将无法按预期方式工作.

默认情况下,您可以通过添加反斜杠来引用全局命名空间类 - 例如$x = new \PDO(...);.试图use \不会改变这一点.

如果要从全局命名空间类中删除反斜杠,则需要use专门针对每个类.在命名空间PHP中,任何没有命名空间的类引用都假定在当前命名空间中,除非它由use语句显式引用.

例如:

use \PDO, \SplFileObject;
Run Code Online (Sandbox Code Playgroud)

现在我们可以打电话new PDO(...)new SplFileObject()不打反斜杠.但是其他不在的全球类use仍然需要反斜杠.