ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-08-2005, 22:00
Zefixhall
 Newbie
Links : Onlinestatus : Zefixhall ist offline
Registriert seit: Jul 2003
Ort: München, Bayern
Beiträge: 37
Zefixhall ist zur Zeit noch ein unbeschriebenes Blatt
Question Methoden Aufruf eines als Referenz in Klasse gespeichertes Objekt

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:

Zitat:
Fatal error: Call to a member function on a non-object in
Anbei mal mein erstellter Quelltext - vielleicht kann mir ja einer von Euch sagen, was ich grundsätzlich falsch mache und wo der Knackpunkt ist:

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.;
        }
        

Vielen Dank für Eure Hilfe!
Mit Zitat antworten
  #2 (permalink)  
Alt 29-08-2005, 22:09
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zeilenumbrüche in den Code, ansonsten liest ihn die Hälfte nicht mal...
Mit Zitat antworten
  #3 (permalink)  
Alt 29-08-2005, 22:16
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

var_dump() benutzen und mal debuggen
Mit Zitat antworten
  #4 (permalink)  
Alt 30-08-2005, 00:28
PhilW
 Junior Member
Links : Onlinestatus : PhilW ist offline
Registriert seit: Mar 2005
Beiträge: 56
PhilW ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Tausch das mal mit dem aus...


PHP-Code:

...

        
#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[$a]->checkMatchcode($mc);
                        
$a++;
                }
#ENDE WHILE
                
if($is_objekt==false){# Es muss eine Instanz der Klasse WarenkorbInhalt erzeugt werden
                        
$this->wkPositionen[$a] = new warenkorbInhalt();
                        
$this->wkPositionen[$a]->setWK_Artikel($pID$Artikelname$ArtikelNummer,
$Hersteller$Gr$Farbe
$UVP$Anz$mc);
                        
                }
                
                
$this->anzahlArtikel count($this->wkPositionen);        
        }

... 

hoffe ich konnte helfen

Phil
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:06 Uhr.