Ankündigung

Einklappen
Keine Ankündigung bisher.

Klassenschachtelung -> Cannot Redeclare Class ... Fehler

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Klassenschachtelung -> Cannot Redeclare Class ... Fehler

    Hallo ich habe irgendwie ein Verständnisproblem:
    Ich habe eine Klasse Variant:

    Code:
    class Variant 
    {
       var $artikelnummer="";
       var $packagesize="";
       var $packagequan="";
       var $deliverState="";
       var $price="";
    
       function Variant($anr,$packquan,$packunit,$del,$price) 
       {
         $this->artikelnummer=$anr;
         $this->packagesize=$packquan;
         $this->packagequan=$packunit;
         $this->deliverState=$del;
         $this->price=$price;
       }
       
       function setArtNum($an)    {$this->artikelnummer=$an; }
       function setPackSize($ps)  {$this->packagesize=$ps; }
       function setPackQuan($pq)  {$this->packagequan=$pq; }
       function setDelState($ds)  {$this->deliverState=$ds; }
       function setPrice($pr)     {$this->price=$pr; }
       function getArtNum()     {return $this->artikelnummer; }
       function getPackSize()   {return $this->packagesize; }
       function getPackQuan()   {return $this->packagequan; }
       function getDelState()   {return $this->deliverState; }
       function getPrice()      {return $this->price; }
    }
    Diese soll in einer Klasse Artikel eingebunden werden:
    Code:
    <?php
    include_once("variant_class.php");
    class Article
    {
    
       var $title;
       var $desc;
       var $variants = array();
       var $cntVar;
    
    
       function article( $t, $d="keine Beschreibung" ) 
       {
           $this->title = $t;
           $this->desc = $d;
           $this->cnt = 0;
       }
    
       function addVariant($anr,$packquan,$packunit,$del,$price) 
       {
          $vari = new variant($anr,$packquan,$packunit,$del,$price);
          array_push($this->variants,$vari);
       }
       function printVariants() 
       {
    
        print (sizeof($this->variants));
       print("<table border=1>");
        for($j=0;$j<sizeof($this->variants);$j++)
        {
          print("<tr>");
          print("<td>".$this->variants[$j][0]."</td>");
          print("<td>".$this->variants[$j][1]."</td>");
          print("<td>".$this->variants[$j][2]."</td>");
          print("<td>".$this->variants[$j][3]."</td>");
          print("<td>".$this->variants[$j][4]."</td>");
          print("</tr>");
        }
        print("</table>"); 
       }
    } 
    ?>
    Die Klasse Artikel wird wiederrum durch mehrere Instanzen in der index.php Seite benötigt.
    Ich bekomme immer den Fehler:
    Cannot redeclare class Variant!!!

    Vielen Dank für eure Hilfe

  • #2
    und wie bzw wo und wann sind die klassen eingebunden? sollen wir da raten?

    Kommentar


    • #3
      Der Aufruf in der index.php Seite sieht wie folgt aus:
      Code:
      <?php
      require_once("classes/article_class.php");
      $prod = new Article("bla","bla");
      
      ?>

      Kommentar


      • #4
        dann gibt's zu der fehlermeldung auch noch ne zeilen angabe .. bindest du irgend welche
        dateien öfter per include() ein? weil wenn alles nur einmal eingebunden ist, dann kann's
        eigentlich nicht dazu kommen, dass irgendwas neu definiert wird.

        Kommentar


        • #5
          Genau du hast soeben mein Problem erkannt.
          Ich dachte schon in bin zu blöd..... aber irgendwie funkt es nicht!!

          Die Klasse Artikel bindet die Klasse Variant ein. Und meine Hauptklasse bindet nur die Klasse Artikel ein.
          Die ganze Fehlermeldung lautet:
          Fatal error: Cannot redeclare class variant in C:\apachefriends\xampp\htdocs\fpdf\classes\variant _class.php on line 3


          Ich binde jede Klasse definitiv nur einmal ein!!!!

          Danke für die Hilfe!!!!

          Vielleicht hat jemand noch einen Idee worans liegt!!!

          Kommentar


          • #6
            yourdarkside hat in einem anderen thread geschrieben:
            Kuckst du hier
            Die Klasse ist in PHP schon integriert.
            der doppelpost wurde in richtung trash verschoben.
            [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

            Kommentar

            Lädt...
            X