| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 05.02.2008
Beiträge: 5
![]() | Hallo zusammen und danke für Eure Diskussion ![]() Mein Beispiel hatte ich nur so runtergetippt. Wenn da also noch Syntaxfehler drin waren, hoffe ich, das die nicht zur Verwirrung beigetragen haben!? ![]() Bei der Initialisierung von $newB = new B; erhält das Objekt $newB neben den eigenen Methoden und Eigenschaften auch die von Klasse A (B extends A) durch die Vererbung, inkl. einer eigenen var $myVar, die innerhalb des neuen Objektes natürlich leer ist, weil nicht gesetzt. $myVar wurde aber in der "aufrufenden/Eltern-Klasse" A (die $newB = new B(); initialisiert hat) vorher gesetzt und an genau die will/muss ich drann. $this und parent:: gehen auf die vererbten Methoden und Eigenschaften des Objektes, aber wohl nicht an die aufrufende Klasse. Ich weiß nicht, ob A:: ein anderes Ergebnis bringt, oder ob das nur eine andere Schreibweise von parent:: ist!? Das heißt für meinen Fall werde ich dann wohl den Wert an die Klasse manuell weitergeben. Danke & Gruß, 72 |
| |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Maßgeblich ist auch die Sichtbarkeit der Variable: PHP-Code:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- Geändert von nikosch (12.12.2008 um 14:42 Uhr). | |
| |
| | |
| Erfahrener Benutzer Registriert seit: 05.09.2007
Beiträge: 5.044
![]() | Ich glaube "aufrufende Klasse" ist einfach falsch. Du hast ein Objekt a der Klasse A. Dieses Objekt a hat eine Eigenschaft myval mit dem Wert 4711. Jetzt erstellst Du ein neues Objekt newB der Klasse B (von mir aus extends A). Und willst die Werte des Objekts a im Objekt newB verwenden. Richtig? |
| |
| | |
| Neuer Benutzer Registriert seit: 05.02.2008
Beiträge: 5
![]() | @David Soweit richtig! Objekt B wird aber in Objekt A erstellt, deswegen habe ich von "aufrufende Klasse" gesprochen, was wohl eher "unrichtig" ist :P Im neuen B sollen die bereits gesetzten Werte aus A verwendet werden. @nikosch Welche Sichtbarkeit hat denn ein var $myVar? Public, protected oder einen anderen, bzw. garkeinen(?) Zustand? In Deinem Beispiel setzt Du ja ein Objekt B, welches von A abgeleitet ist. Im Konstruktor von B rufst Du den Konstruktor von der geerbten Klasse A auf, wo myVar aus A gesetzt wird. Anschließend setzt Du myVar aus B und gibst die Werte aus. Die Ergebnisse mit protected und private sind nachvollziehbar, aber das Beispiel beschreibt nicht mein Problem ![]() Danke & Gruß, 72 |
| |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
mit var deklarierte Variablen haben public Status.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| |
| | ||
| Neuer Benutzer Registriert seit: 05.02.2008
Beiträge: 5
![]() | Wenn dem so ist, dann probiere ich es mit einer expliziten private Deklaration von myVar in A aus. Dadurch müsste der Zugriff dann ja klappen Zitat:
Werde das heute Abend genauer testen können! Danke Euch für die Hilfe! Gruß, 72 | |
| |
| | |
| Erfahrener Benutzer Registriert seit: 05.09.2007
Beiträge: 5.044
![]() | Wie gesagt: Der Ausdruck "aufrufende Klasse" ist falsch. Das hat eventuell Bedeutung in C++ mit friend class Definitionen. Aber selbst das hat mit dem hier geschilderten Problem nichts zu tun. Alles, was Du hier durch B extends A "gewinnst", ist, dass Instanzen/Objekte von B auf protected Elemente von Objekten von A zugreifen können. Dafür brauchst Du aber irgendeine Referenz auf das Objekt von A. Und die bekommst Du nicht durch bloßen Aufruf. Der class stack hat nichts mit der Vererbungshierarchie zu tun. |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Dringende Frage | odde | PHP Tipps 2008 | 5 | 28.10.2008 19:03 |
| Variablen in Klassen resetet | oceanblue | PHP Tipps 2008 | 5 | 15.10.2008 14:30 |
| Frage zu LDAP Frage (Active Directory) | FRAD | PHP Tipps 2008 | 0 | 01.10.2008 16:11 |
| Tool um (Spiel)Klassen zu erzeugen | Martin13 | PHP-Fortgeschrittene | 6 | 05.09.2007 02:25 |
| Klassen sinnvoll nutzen, Grundlegendes | nikosch | PHP-Fortgeschrittene | 1 | 30.09.2006 22:08 |
| [Erledigt] PHP 4 - Klassen? | patr1k | PHP Tipps 2005 | 10 | 18.11.2005 10:48 |
| Klassen und OOP Problem | PHP-Fortgeschrittene | 3 | 08.09.2005 10:37 | |
| klassen und methoden anderer klassen in methoden.... | PHP Tipps 2005 | 17 | 25.05.2005 09:46 | |
| Klassen | PHP Tipps 2005 | 5 | 09.04.2005 18:51 | |
| Klassen Frage!!! | PHP-Fortgeschrittene | 20 | 04.03.2005 22:24 | |
| Klassen in Klassen verwenden | PHP Tipps 2005 | 5 | 23.02.2005 14:08 | |
| klassen: ganz dumme frage | PHP Tipps 2005 | 8 | 23.01.2005 13:32 | |
| [Erledigt] Frage zur Funkrionen? | PHP Tipps 2004-2 | 10 | 01.12.2004 09:42 | |
| Klassen?! | PHP Tipps 2004 | 14 | 03.06.2004 17:33 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| parent php class, php innerhalb einer abgeleiteten klasse auf parent objekt zugreifen |