0

我将尝试描述我遇到问题的情况:

我有一个主文件夹。我将所有文件都保存在那里(出于某种原因,空类)和一个包含相同文件的子文件夹,所有实现都在这里(空类扩展它们)。

主文件夹的命名空间声明为Project/Folder,子文件夹声明为Project/Folder/Subfolder. 这些是类的声明:

namespace Project\Folder;
class Foo extends Subfolder\Foo {  }

namespace Project\Folder\Subfolder;
class Foo {  }

我想要实现的是能够Project\Folder\Subfolder\Foo通过较低级别的这些空类从内部调用其他类,只有它的名称,例如:

namespace Project\Folder\Subfolder;
class Foo {
     function bar() {
        Another_Class::do_something();
     }
}

默认情况下,会Another_ClassProject\Folder\Subfolder命名空间调用。我希望它使用相同的语法从 Project\Folder 命名空间中引用 Another_Class - 这可能吗?

我希望我解释得足够清楚,如果没有,请写一个表扬,我会尽量让它更清楚。

4

1 回答 1

2

您可以使用该use语句来实现。

use Project\Folder\Subfolder\Another_Class as SomeAlias;

// ...

SomeAlias::doSomething();

// or

$object = new SomeAlias();
$object->doSomething();

或者,您必须引用整个命名空间:

\Project\Folder\Subfolder\Another_Class::doSomething();

// or

$object = new \Project\Folder\Subfolder\Another_Class();
$object->doSomething();

更多信息在这里。

于 2012-11-17T21:45:16.037 回答