我只是想知道是否有一种方法可以使类使用"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仍然需要反斜杠.