Hallo Community!
Nachdem ich seit fast 2 STunden nun schon auf der Suche nach meinem Denk- bzw. Verständnisfehler bin, dachte ich mir, ich frag Euch einfach mal:
Habe eine Klasse Warenkorb geschrieben. Ein WK wird erzeugt, wenn ein Besucher die Seite betritt. Nun legt er einen Artikel in diesen. Konsequent ist doch jetzt nach dem OOP Ansatz, dass ich eine weitere Klasse WarenkorbInhalt habe, wo die einzelnen Artikel darin als Objekte erzeugt werden => Auf Deutsch:
Wenn der Besucher etwas in den WK legt, dann wird ein Objekt der Klasse WarenkorbInhalt instanziiert. Jetzt möchte ich natürlich diese einzelnen Artikel über den Warenkorb "verwalten" und z.B. in einer Funktion in der Klasse Warenkorb die als Objektreferenzen gespeicherten Objekte der Klasse WarenkorbInhalt ansprechen und ihnen einen Botschft schicken, wie z.B. showDetails.
Genau das ist mein Problem! Ich habe da wohl was noch nicht verstanden, denn wenn ich versuche die Methode der anderen Klasse aus der KLasse Warenkorb aufzurufen kommt diese Fehlermeldung:
	
		
Anbei mal mein erstellter Quelltext - vielleicht kann mir ja einer von Euch sagen, was ich grundsätzlich falsch mache und wo der Knackpunkt ist:
	
Vielen Dank für Eure Hilfe!
							
						
					Nachdem ich seit fast 2 STunden nun schon auf der Suche nach meinem Denk- bzw. Verständnisfehler bin, dachte ich mir, ich frag Euch einfach mal:
Habe eine Klasse Warenkorb geschrieben. Ein WK wird erzeugt, wenn ein Besucher die Seite betritt. Nun legt er einen Artikel in diesen. Konsequent ist doch jetzt nach dem OOP Ansatz, dass ich eine weitere Klasse WarenkorbInhalt habe, wo die einzelnen Artikel darin als Objekte erzeugt werden => Auf Deutsch:
Wenn der Besucher etwas in den WK legt, dann wird ein Objekt der Klasse WarenkorbInhalt instanziiert. Jetzt möchte ich natürlich diese einzelnen Artikel über den Warenkorb "verwalten" und z.B. in einer Funktion in der Klasse Warenkorb die als Objektreferenzen gespeicherten Objekte der Klasse WarenkorbInhalt ansprechen und ihnen einen Botschft schicken, wie z.B. showDetails.
Genau das ist mein Problem! Ich habe da wohl was noch nicht verstanden, denn wenn ich versuche die Methode der anderen Klasse aus der KLasse Warenkorb aufzurufen kommt diese Fehlermeldung:
			
			
				Fatal error: Call to a member function on a non-object in
			
		
	PHP-Code:
	
	
#Warenkorbklasse
class warenkorb
{
        # Variablen
        var $wkID, $anzahlArtikel, $wkPositionen = array();
        
        #neuen Warenkorb einrichten
        function set_newWK($sessionID)
        {
                $this->wkID= $sessionID;
                $this->anzahlArtikel=0;
                
        }
        #Anzeige Warenkorb Parameters
        function showWK_Parameters()
        {
                echo '<b>Anzahl der Artikel</b> im Warenkorb: '.$this->anzahlArtikel.'<br/><b>SessionID</b>:  '.$this->wkID.'<p/>Liste der Artikel darin:<p/>';
                $a=0;
                while($a<$this->anzahlArtikel){
                        $this->wkPositionen[$a]-> show_Details();
                        $a++;
                }
        }
        #Neuen Artikel in WK
        function setArtikel_WK($pID, $Artikelname, $ArtikelNummer, $Hersteller, $Gr, $Farbe, $UVP, $Anz)
        {
                $mc = $pID.$Artikelname.$ArtikelNummer.$Gr.$Farbe.$Hersteller;
                $a=0;
                $is_objekt = false;
                while($a<$this->anzahlArtikel){
                        $is_objekt= $this->wkPositionen[$this->anzahlArtikel]->checkMatchcode($mc);
                        $a++;
                }#ENDE WHILE
                if($is_objekt==false){# Es muss eine Instanz der Klasse WarenkorbInhalt erzeugt werden
                        $this->wkPositionen[($this->anzahlArtikel+1)] = new warenkorbInhalt();
                        $this->wkPositionen[($this->anzahlArtikel+1)]->setWK_Artikel($pID, $Artikelname, $ArtikelNummer, $Hersteller, $Gr, $Farbe, $UVP, $Anz, $mc);
                        
                }
                
                $this->anzahlArtikel = count($this->wkPositionen);        
        }
        
}
#WarenkorbInhalt
class warenkorbInhalt extends warenkorb
{
        var $pID, $Artikelname, $ArtikelNummer, $Hersteller, $Gr, $Farbe, $UVP, $Anz;
        var $pMatchCode;
        
        # Warenmatchcode prüfen...
        function &checkMatchcode($mc)
        {
                if($this->pMatchCode==$mc)
                        return true;
        }
        # Artikeldaten setzten
        function setWK_Artikel($pID, $Artikelname, $ArtikelNummer, $Hersteller, $Gr, $Farbe, $UVP, $Anz, $pMatchCode)
        {
                $this->pID=$pID;
                $this->Artikelname=$Artikelname;
                $this->ArtikelNummer=$ArtikelNummer;
                $this->Hersteller=$Hersteller;
                $this->Gr=$Gr;
                $this->Farbe=$Farbe;
                $this->UVP=$UVP;
                $this->Anz=$Anz;
                $this->pMatchCode=$pMatchCode;
        }
        
        #Anzeigen
        function show_Details()
        {
                echo'Hier meldet sich das Objekt: '.$this->pMatchCode.'<p/>pID: '.$this->pID.'<br/>Artikelname: '.$this->Artikelname.';
        }
        
} 
 
          
 Methoden Aufruf eines als Referenz in Klasse gespeichertes Objekt
									
									
									Methoden Aufruf eines als Referenz in Klasse gespeichertes Objekt
								
 
							
						
 
 
Kommentar