我在这里看到了一个非常相似的问题(和答案):https://stackoverflow.com/a/20933938/339440 ......但它并没有完全符合我的需要。
我有这个:
<?php
namespace My\Project {
function foo() {
...do stuff...
return $something;
}
}
namespace { // global namespace
function prefix_foo() { return My\Project\foo(); }
}
我想要的全局命名空间是:
namespace {
use function My\Project\foo as prefix_foo;
}
...但是每当我尝试在全局命名空间中调用prefix_foo()时,我都会得到一个未定义的&#34;函数&#34;错误。我使用的是PHP 5.6.25。谁能告诉我为什么这不起作用?似乎没有&#34; as&#34; (根据上面的相关问题)。
修改 好吧,我发现它正在发生,因为定义和实际使用情况发生在两个不同的文件中。看来你必须把&#34;使用&#34;每个单独文件中可能使用这些函数的子句。
在这种情况下,这将真的笨重,因为我必须&#34;定义&#34;这样一大堆功能,并在每个功能中重复使用一大块使用条款会使目的失败。
有没有办法让&#34;使用&#34;声明从一个PHP文件到下一个(通过包含)?
答案 0 :(得分:0)
回答了我自己的问题,事实证明问题本身并不是我认为的那样。
我在两个不同的文件中有定义和实际用法。您必须在可能使用这些函数的每个单独文件中放置“use”子句。