tobias-digital Geschrieben 7. März 2005 Geschrieben 7. März 2005 Hi! Wie mache ich das am besten? Ich muss auf eine Eigenschaft der übergeordneten Klasse zugreifen. Also ich habe eine Basisklasse, die bestimmte Eigenschaften hat, und ich will diese Eigenschaften auch in den Sub und Subsubklassen zur Verfügung haben. Danke und Gruß, Tobias Zitieren
etreu Geschrieben 7. März 2005 Geschrieben 7. März 2005 Attribute der Superklasse sind auch automatisch Attribute der Subklasse. also: class A { var $item; function A() { // Konstruktor // tu was! } } class B extends A { function B() { // Konstruktor parent::A(); // entspricht super() in Java $this->item = "wert"; // steht implizit zur Verfügung } } [/PHP] Zitieren
tobias-digital Geschrieben 8. März 2005 Autor Geschrieben 8. März 2005 Hmm, ok versteh ich, damit kann ich auf Methoden der aber wie realisiere ich folgendes: class A { var $dbLink; function A() { // Konstruktor $this->dbLink = connect(); // dbLink enthält jetzt Link zur DB $b = new b(); } } class B extends A { function B() { $sql = 'SELECT foo FROM bar'; // Hier hätte ich jetzt gerne die Variable $dbLink zur Verfügung. } } [/PHP] Irgendwie steh ich aufm Schlauch. Zitieren
etreu Geschrieben 8. März 2005 Geschrieben 8. März 2005 Wenn es nur darum geht die Variable $dblink zur Verfügung zu haben mache es doch so: class A { var $dbLink; function A() { // Konstruktor $this->dbLink = connect(); // dbLink enthält jetzt Link zur DB } } class B extends A { function B() { parent::A(); $sql = 'SELECT foo FROM bar'; // Hier hast du jetzt Zugriff mittels $this->dblink } } [/PHP] Zitieren
kills Geschrieben 8. März 2005 Geschrieben 8. März 2005 oder auch: class A { var $dbLink; function A() { // Konstruktor $this->dbLink = connect(); // dbLink enthält jetzt Link zur DB $b = new b(); } } class B extends A { function B() { parent::A(); // hier die Basisinitialisierung... $sql = 'SELECT foo FROM bar'; var_dump( $this->dbLink); } } [/PHP] Gruß, Markus Edit: omg Enrico hat ja das gleiche geschriebe... :floet: Zitieren
etreu Geschrieben 8. März 2005 Geschrieben 8. März 2005 Fast, ich habe nur deine "tödliche" Schleife weggelassen. Zitieren
kills Geschrieben 8. März 2005 Geschrieben 8. März 2005 Fast, ich habe nur deine "tödliche" Schleife weggelassen. sorry Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.