【问题标题】:PHP5.5: Fatal error: Cannot redeclare classPHP5.5:致命错误:无法重新声明类
【发布时间】:2015-10-30 10:30:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: php redeclare


【解决方案1】:

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

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

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

namespace App;
class sessionHandler {
....

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

【讨论】:

  • 完美!感谢您提供非常快速且正确的解决方案。
猜你喜欢
  • 1970-01-01
  • 2010-10-17
  • 2014-11-07
  • 2012-07-31
  • 2016-03-25
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多