我有最新版本的XAMPP和php版本5.6.3,但我不能使用ZipArchive。我已经下载了php_zip.dll并将其放在ext目录中,我已经添加了extension = php_zip.dll但是在服务器重置后我已经变暖了:
"模块' zip'已加载"
我仍然看到错误:找不到ZipArchive ......
使用:
$zip = new ZipArchive();
返回错误:
Fatal error: Class 'Att\Controller\ZipArchive' not found in ...
答案 0 :(得分:6)
好的,鉴于您在评论中添加了我的建议的其他信息,现在事情变得更加清晰了。这个看起来像你有一个命名空间问题:php试图找到类Att\Controller\ZipArchive
,而不是类ZipArchive
。这可能就是这种情况,因为您尝试在命名空间脚本中使用该类。在这种情况下,php将假定所有类名作为在脚本开头声明的通用名称空间的本地名称,除非使用特定的名称空间引用标注它们。
尝试使类名显式引用全局命名空间。而不是
$zip = new ZipArchive();
这样做:
$zip = new \ZipArchive;
(请注意类名前面的反斜杠(\
)。此外,您可以删除尾随它的空括号,因为它们是空的。)
现在php将尝试在全局命名空间(\
)中找到一个名为“ZipArchive”的类,并且(希望)成功...这是php中命名空间的一般效果,与此无关您尝试使用的特定类。
您可能想要阅读一些关于php和命名空间的内容。请查看文档:{{3}}