【问题标题】:Fatal error: Cannot redeclare class (PHP)致命错误:无法重新声明类 (PHP)
【发布时间】:2014-11-07 14:49:51
【问题描述】:

我遇到了这个致命错误的大问题。我有 5 个文件,每个文件都包含一个类(Nationality.php、Team.php、BoughtTickets.php、Users.php、Tickets.php),其中两个需要其他类。

所以这里是 index.php

<?php

require 'header.html';
require 'pages/first.html';
require 'class/db.php';

$c=DB::connect();

require 'pages/footer.html';
?>

Users.php

require 'Nationality.php';
require 'Team.php';
require 'BoughtTickets.php';

class Users{
    public $Email;
    public $Name;
    ...

BoughtTickets.php

require 'Tickets.php';

class BoughtTicket{

    public $IDTicket;
    public $Date;
    ...

每次我想登录时,都会出现致命错误。如果我删除行需要'BoughtTickets.php';来自用户类,它可以工作,但它不会在一个需要类 BoughtTickets.php 的文件中显示表格。你知道如何解决这个问题吗?

谢谢

【问题讨论】:

  • require_once('....') 是你的朋友。另外,if(!class_exists('BoughtTicket')): require('BoughtTickets.php'); endif; 也足够了。
  • 这是一个编程问题,its not working 缺乏足够的信息来尝试回答这个问题。使用require_once()if(!class_exists('...')) 时会发生什么
  • 和之前一样的错误:Fatal error: Cannot redeclare class Ticket.php
  • 那么您的require_once() 语句无法正常工作。更好的是,为什么不直接使用namespacing
  • 我找到了解决方案。在不同的文件中要求一个类是错误的。所以require_once()最终实际上解决了一个问题。谢谢:)

标签: php sql class fatal-error


【解决方案1】:

尝试使用 include_once 而不是 require。

【讨论】:

    【解决方案2】:

    如果你有类似的东西,你可能会遇到这个错误

    class C
    {
    }
    
    class B extends A
    {
    }
    
    class A
    {
    }
    

    【讨论】:

      【解决方案3】:

      使用require_once 代替require

      【讨论】:

        猜你喜欢
        • 2010-10-17
        • 2013-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-22
        • 1970-01-01
        • 2016-06-21
        相关资源
        最近更新 更多