Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Verschachtelte Objekte... Variablen ohne Inhalt! (Newbie)

Hallo zusammen,

fange erst mit PHP4 an und schlage mich so durch.... momentan bin ich gerade dabei, eine von mir erstellte objektorientierte Lösung auf PHP4 zu übertragen (ein SQL-Statementgenerator). Dazu benötige ich hierarisch organisierte Objekte (Aufzählungsklassen). Dabei passiert bei mir wundersames:

- über ein Wurzelobjekt greife ich auf die tiefer liegenden Objekte zu
- das funktioniert auch bis zur ersten Ebene
- ab der zweiten bekomme ich Probleme - die Werte, die ich dort zugewiesen habe verschwinden....

Ich habe ein stark vereinfachtes Beispielprojekt erstellt:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Die Ausgabe ist folgende:

Zitat:
Test 1 - Name der zweiten Unterklasse: NameZweiteUnterklasse
Test 2 - Name der zweiten Unterklasse:
Der Name der ersten Unterklasse ist noch vorhanden: NameErsteUnterklasse


Das ganze ein bischen abgewandelt funzt:

Name erste Unterklasse: NameErsteUnterklasse
Name zweite Unterklasse: Testname

Wie man sieht, funktioniert Test2 nicht.... kein Inhalt!

Ich habe das Gefühl, dass dies mit der Übergabe als Referenz/Wert zusammenhängt. Die abgewandelte Lösung funktioniert zwar, erscheint mir aber bei der späteren Nutzung der Klasse sehr unbequem.

Über Hilfe / Anregungen wäre ich sehr dankbar,

Volker (Newbie)
Hier gehts zum Orginal Eintrag "Verschachtelte Objekte... Variablen ohne Inhalt! (Newbie)" im Forum

Antworten

Code:                   In Zwischenablage kopieren (nur IE)
2">

vielleicht so?


2.

Danke für die schnelle Antwort!

Funktioniert bei mir leider nicht:
Zitat:
Parse error: parse error in ......... on line 12


Das '&' beim ersten 'return' wird eben nicht geschluckt.... Ich hatte vergessen zu erwähnen, dass ich mit & (um eine Variable als Referenz zu übergeben) schon rumexperimentiert habe... hab's fast überall hingeschrieben, wo's angenommen wird.

Aber bei Rückgabe des Objekts (mit 'return') scheint für mich auch das Problem zu liegen. Hier wird eben eine Kopie und nicht das Orginal als Referenz zurückgegeben.

Vielleicht ist folgende Frage besser:
Wie gebe ich aus einer Funktion mit 'return' eine Klasse als Referenz zurück???

Danke, Volker


3.

Hi,

habe die Lösung im PHP-Manual gefunden:

[quote]Um von einer Funktion eine Referenz zurückzugeben, müssen Sie den Referenz-Operator & sowohl in der Funktionsdeklaration, als auch bei der Zuweisung des zurückgegebenen Wertes verwenden:

Code:                   In Zwischenablage kopieren (nur IE)
3">

[/quote] Entsprechend abgeändert funzt auch mein Beispielscript ;-)

Erfreut,

Volker


Hier gehts zum Orginal Eintrag "Verschachtelte Objekte... Variablen ohne Inhalt! (Newbie)" im Forum
 
phpforum.de | Impressum