PHP-将名称空间重置为全局

时间:2018-08-03 16:10:45

标签: php namespaces

我想从已声明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>

希望我很愚蠢,并且缺少明显的东西,或者有充分的理由为什么不可能做到如此基本的东西,但是我似乎找不到任何证明这两个原因的证据。

1 个答案:

答案 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
}