我想从已声明namespace
的页面中访问全局namespace
函数,而不必麻烦在每个函数之前添加\
。
如何重置回全局名称空间?
示例:
<?php
namespace Stupid\Namespace;
$page = new page;
function zipUp() {
$zip = new ZipArchive();
//doesn't matter what the rest of this function is,
//because it will already have had a fatal error
//unless I add a leading \, like new \ZipArchive();
}
理想情况下,我只想声明全局名称空间,就像我使用其他名称空间一样,仅用于此功能:
function zipUp() {
namespace \; \\ OR namespace global; etc.
$zip = new ZipArchive();
}
(我能找到的)唯一可行的方法是将函数包装在大括号中(namespace { function foo(){...} }
,但随后我也必须将使用主命名空间的所有内容都包装在大括号中,这是不可行的。 / p>
希望我很愚蠢,并且缺少明显的东西,或者有充分的理由为什么不可能做到如此基本的东西,但是我似乎找不到任何证明这两个原因的证据。
答案 0 :(得分:2)
只需使用use
示例:
<?php
namespace Stupid\Namespace;
use \zipArchive;
//use \zipArchive as zipArch; (You could use the class as a custom shorthand to interact with that class if you want)
$page = new page;
function zipUp() {
$zip = new ZipArchive();
//new zipArchive() should not throw a fatal exception
}