PHP5.5: Fatal error: Cannot redeclare class

PHP5.5: Fatal error: Cannot redeclare class

自从我从 PHP 5.2 升级到 5.5 后,我收到一个我现在不明白的错误。

Fatal error: Cannot redeclare class sessionHandler in ... on line ...

好吧,在更新 PHP 版本之前,这个错误并没有出现,重新声明 class 应该是一个独立于 PHP 版本的错误,我猜。此外,我总是使用 require_once() 这应该有助于避免错误。

所以为了确保它不会被重新声明,我在 class 声明之前添加了一个回溯代码块。所以希望,我认为它会输出两次,但我只得到一个回溯输出。因此,从我的角度来看,它只被声明了一次。

我错过了什么吗?知道如何找到 "real" 问题吗?

Class "SessionHandler" 已经存在于命名空间中,因为它是 PHP 中的 class - http://php.net/manual/en/class.sessionhandler.php

看起来 class 包含在 PHP 5.4 中,所以它解释了一切。

尝试为 class 想一些其他名称或定义一个命名空间。 如果你创建一个命名空间,比如..

namespace App;
class sessionHandler {
....

您不会再收到错误消息,但只要您引用自己的 class.

,就需要使用 App\sessionHandler