PHP有某种using namespaceC++吗?(所以你不必在打电话之前写任何命名空间)
我在其中定义了一个函数:
namespace \Project\Library {
function hello() {
}
}
Run Code Online (Sandbox Code Playgroud)
另一个 file.php:
use \Project\Library;
hello(); //> Error: Call to undefined function hello()
Run Code Online (Sandbox Code Playgroud)
我知道我可以用 use \Project\Library as L;
然后呢 L\hello();
我也想避免L\.
我回答自己:你不能这样做.这非常糟糕(这是我不喜欢PHP的第一件事).
要明确:如果hello()是一个类,我可以直接使用它use.问题是这是一个简单的函数,所以我必须编写它的命名空间.这是PHP的一点点烦恼.
也许我们可以认为这是一个错误并打开一张票?
从 PHP 5.3.0 开始,它支持语法use ... as:
use My\Full\Classname as Another
Run Code Online (Sandbox Code Playgroud)
use另外,直接从手册中猜测(不使用as Another)也是不可能的(手册中没有提到)。
您也许可以使用一些像类工厂这样的 hack 或通过自动加载器的解决方法,但简单而直接的答案是“这是不可能的”。:(
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |