1

示例代码:

namespace myns;

$zip = new ZipArchive;
$zip->open('/var/www/less/less_1.zip');

for ($i = 0; $i < $zip->numFiles; $i++) {
    echo $zip->getNameIndex($i);
}

当我尝试创建命名空间并使用 ZipArchive 时出现错误:

PHP Fatal error:  Class 'myns\ZipArchive' not found 
in /var/www/less/test.php on line 4

如果没有命名空间“myns”,它可以正常工作。

我会很感激任何想法。

4

2 回答 2

9

您只需要使用“全局”命名空间来访问它:

namespace myns;

$zip = new \ZipArchive;

有关详细信息,请参阅命名空间文档

于 2012-02-11T00:07:58.430 回答
0

如果系统中缺少:

sudo apt install php-zip

从 php 中的全局空间:

$zip = new ZipArchive();

从命名空间(无括号):

namespace ZipSpace;
function zip(){
   $zip = new \ZipArchive;
   // ....
}

在名称空间中的任何地方使用\来引用全局。

致电:

\ZipSpace\zip()
于 2019-06-09T21:53:46.590 回答