1

因为我从 PHP 5.2 升级到 5.5,所以我收到了一个我现在不明白的错误。

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

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

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

我错过了什么吗?知道如何找到“真正的”问题吗?

4

1 回答 1

3

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

看起来该类已包含在 PHP 5.4 中,因此它解释了所有内容。

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

namespace App;
class sessionHandler {
....

您将不会再收到错误,但每当您引用自己的类时,您都需要使用 App\sessionHandler 。

于 2015-10-30T10:37:59.043 回答