"Fatal error: Cannot declare class" after upgrading to PHP 7.0.8

"Fatal error: Cannot declare class" after upgrading to PHP 7.0.8

我使用的是 PHP 7.0.4,一切都 运行 很顺利,我刚刚升级到 PHP 7.0.8,我开始到处都是这样的错误.

Fatal error: Cannot declare class Plugins\Users\Plugin because the name is already in use in /var/www/html/plugins/Users/Plugin.php on line 8

有谁知道发生了什么事吗?我一直在阅读更改日志,但这是一个补丁更新,应该不会破坏任何东西?

另外,如果这个问题没有找到解决方案,我该如何降级回7.0.4? (我正在使用 ubuntu 16.04,我刚刚升级到点版本)

总结到目前为止的评论:

没有足够的数据可以明确地说,但我怀疑是 opcache。那个错误,其实就是originates in opcache so I suspect until this point the error had been hidden by one of several opcode bugs, probably #66773.

您确实有一个需要修复的自动加载问题。重命名 class,检查您的命名空间,并删除任何硬性要求。

可能 能够通过 disabling/re-enabling opcache 或恢复到 7.0.4 来恢复以前的错误行为,但实际上错误只是被特定的组合所掩盖自动加载和 opcache。事实上,这个问题直到现在才被发现只是偶然,你可以再次掩盖它也只是偶然。

所以最好的办法就是解决这个问题。

好吧,显然我对升级后开始出现错误这一事实视而不见,即使它就在我眼前我也忽略了它。

这些是有问题的 class 的前几行(显然还有一堆其他 classes):

<?php

namespace Plugins\Users;

use FW\Utility\Models\Plugins\Plugin;

class Plugin extends Plugin {

正如你,最后是我,可以清楚地看到,class 名称 Plugin 是模棱两可的,但在 7.0.4 中不存在,这很奇怪,可能是由 bug described in bishop's

我想我应该听过,呵呵。