我一定是误解了PHP的“use”关键字

时间:2012-11-08 14:06:45

标签: php namespaces

我正在使用一个带有PHP名称空间的应用程序,我认为这不是我做的......

\MyNamespace\ClassName::MyFunction();

我能做到

use MyNamespace;
ClassName::MyFunction();

如果我在页面中多次使用该对象。这不适合我。我一直不得不使用第一种方法。

我对use关键字缺少什么?

3 个答案:

答案 0 :(得分:4)

use基本上会使用姓氏创建一个指向其参数的链接(除非另有说明)。要使用ClassName而不必一直指定其命名空间,您必须导入以下内容:

use \MyNamespace\ClassName;

因此,ClassName被设置为对位于\MyNamespace\ClassName的类型的引用。

它类似于Java import的工作原理,而不像C#的using导入整个命名空间。

答案 1 :(得分:0)

您需要导入/使用确切的类名:

use MyNamespace\ClassName;

ClassName::myFunction();

您还可以使用以下语法:

use MyNamespace\MySubnamespace;

MySubnamespace\MyClassname::doSth();
MySubnamespace\AnotherClassname::doSthElse();

允许您从一个命名空间中使用多个类,而无需导入其中的每一个。

答案 2 :(得分:0)

您应该尝试:

use \MyNamespace\ClassName as MyClassName;

MyClassName::MyFunction();