【问题标题】:"Fatal error: Cannot redeclare class" ... but the class was not declared“致命错误:无法重新声明类”......但未声明该类
【发布时间】:2012-01-29 22:00:21
【问题描述】:

(我使用的是 Joomla v1.5.15 和 PHP 5.3.4)

我已经测试了在这个和其他开发者论坛中找到的解决方案,但我仍然遇到同样的错误。

需要文件 => contratolocal.php

...
if ( !class_exists('MTIHelperEstadosLocal') )
    JLoader::import('helpers.estados.estadoslocal', JPATH_COMPONENT, false);

class MTIControllerContratoLocal extends MTIController
{
...

必需文件 => estadoslocal.php

...
class MTIHelperEstadosLocal extends MTIHelperEstados
{
...

"JLoader::import" 通常在 Joomla 中用于将文件导入到实际脚本中。无论如何,我尝试了 "include/require_once" php 方法也没有成功。

我尝试的每个解决方案都遇到相同的错误:

“致命错误:无法重新声明类 MTIHelperEstadosLocal”

之前没有声明这个类,因为我不能在没有导入的情况下使用这个类,如果我打印“get_declared_classes()”php方法的返回数组,这个类就不存在。

发生了什么?

谢谢

【问题讨论】:

  • 项目中只有一个名为“MTIHelperEstadosLocal”的类

标签: php joomla import include require-once


【解决方案1】:

解决了。

有两个问题:

  1. 在我的项目中,有一些帮助程序包含其他文件,其中一个之前完成了 require_once。
  2. require_once 并没有避免第二个包含,我不得不在一个条件中编写每个 require_once:

    if ( !class_exists('MTIHelperEstadosLocal') )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-17
    • 2014-11-07
    • 2012-07-31
    • 2016-03-25
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多