我会尝试描述我遇到问题的情况:
我有一个主文件夹。我将所有文件保存在那里(出于某种原因的空类),以及一个包含相同文件的子文件夹,其中包含所有实现(空类扩展它们)。
主文件夹的命名空间声明为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_Class
命名空间会调用Project\Folder\Subfolder
。我希望这个从Project \ Folder命名空间引用具有相同语法的Another_Class - 这可能吗?
我希望我能够清楚地解释这一点,如果没有,请写一个表扬,我会尽力让它更清楚。
答案 0 :(得分: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();