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! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

10-09-2003, 13:10
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
[OOP] Werden Konstruktoren vererbt?
Hi,
also ich verstehe nicht wie Konstruktoren vererbt werden.
Also ich möchte, dass in einer erbenden Klasse genau das passiert was in der vererbenden Klasse passiert.
Sprich soll die Klasse Mypage, die von der Klasse Page (welche ein Smarty Template Object erzeugt erbt) den Konstruktor erben, da dort das Smarty Object erzeugt wird.
Andererseits soll beim Erzeugen eines Objectes vom Typ Mypage immer ein paar Zuweisungen von Variablen erfolgen die für alle Objekte des Typs Mypage gleich sind.
Was ist zu tun?
Bin noch recht neu hinsichtlich OOP.
Danke
|

10-09-2003, 13:15
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
Der Konstruktor der vererbenden Klasse wird dann ausgeführt, wenn die erbende Klasse keinen hat. Sonst musst du den immer extra aufrufen:
PHP-Code:
class zwei extends eins {
var $wert = '';
function zwei() {
parent::eins($Parameter);
$this->wert = 'Hallo';
}
}
Geändert von Hopka (10-09-2003 um 13:47 Uhr)
|

10-09-2003, 13:24
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
Hi,
Danke für Deine Antwort.
Aber was ist wenn ich zusätzlich zu den Anweisungen des Konstruktors der vererbenden Klasse noch weitere Anweisungen in der erbenden Klasse haben möchte, die immer für Objekte der erbenden Klasse ausgeführt werden sollen?
Gibt es dort einen Trick oder kann man Konstruktoren auch erweitern?
Oder werden Konstruktoren der vererbenden Klasse immer ausgeführt auch wenn die erbende Klasse selber noch einen weiteren hat?
Danke
Geändert von compuboy1010 (10-09-2003 um 13:27 Uhr)
|

10-09-2003, 13:31
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
Zitat:
Original geschrieben von compuboy1010
Oder werden Konstruktoren der vererbenden Klasse immer ausgeführt auch wenn die erbende Klasse selber noch einen weiteren hat?
|
Zitat:
Original geschrieben von Hopka
Der Konstruktor der vererbenden Klasse wird dann ausgeführt, wenn die erbende Klasse keinen hat. Sonst musst du den immer extra aufrufen
|
also entweder drückst du dich etwas unglücklich aus oder duhast nich alles sooo gründlich gelesen oder ich bin zu doof heut, aber ich denke Hopka hat deine Frage schon beantwortet
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

10-09-2003, 13:32
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
nochmal etwas ausführlicher:
PHP-Code:
class eins { // vererbende Klasse
var $irgendwas = '';
function eins($parameter) { // Konstruktor der vererbenden Klasse
$this->irgendwas = $parameter;
}
}
class zwei extends eins { // erbende Klasse
var $wert = '';
function zwei() { //Konstruktor der erbenden Klasse
parent::eins('Guten Morgen'); // ruft den Konstruktor der vererbenden Klasse auf
$this->wert = 'Hallo'; // irgendeine Anweisung als Konstruktor der erbenden Klasse
}
}
du rufst also im Konstruktor der erbenden Klasse den Konstruktor der vererbenden Klasse auf, und führst anschließend noch ein paar Anweisungen als Konstruktor der erbenden Klasse aus.
Also erstmal den übergeordneten Konstruktor und anschließend den eigenen.
Geändert von Hopka (10-09-2003 um 13:48 Uhr)
|

10-09-2003, 13:37
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
[OOP]
Hi,
also nun habe ich es verstanden.
Toll man kann also den Konstruktor der vererbenden Klasse wie eine normale Funktion behandeln.
Super,
Danke für Eure Hilfe!!!
Vieleicht noch eine Frage, wenn die nicht zu blöd erscheint:
Wird die vererbende Klasse immer mit $parent-> angesprochen?
Gruß
Compu
Geändert von compuboy1010 (10-09-2003 um 13:52 Uhr)
|

10-09-2003, 13:47
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
Re: [OOP]
gefährliches Halbwissen.
http://php.net/keyword.parent
statt $parent->usw
muss parent::usw
stehen.
|

10-09-2003, 13:55
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
Hi,
fantastisch!!!
Vielen Dank!
Nun habe ich es vollständig gerafft, hoffe ich.!
Einen schönen Tag noch und Gruss ...
Compu
|

12-09-2003, 14:14
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
Hi,
ich muss nochmals nachfragen, weil es nicht klappt.
Was ist denn nun, wenn die "parent-funktion" ein Konstruktor ist?
Ich bekomme immer einen Fehler in meinem Skript, dass die Funktion nicht gefunden werden kann.
Muss ich den Funktionsnamen dann gross schreiben, sprich:
parent:: brief();
oder
parent:: Brief();
???????
Danke
|

12-09-2003, 14:21
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
ich würd auf jeden fall das leerzeichen bei parent:: brief(); rausmachen
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

12-09-2003, 14:27
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
Hi,
habe ich gemacht.
Also groß oder klein geschrieben?
:-))
Danke
|

12-09-2003, 14:33
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
so wie du den konstruktur geschrieben hast, im normalfall klein
poste mal die fehlermeldung wenn's nicht geht
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

12-09-2003, 14:36
|
compuboy1010
Member
|
|
Registriert seit: Jul 2003
Ort: Deutschland
Beiträge: 474
|
|
Habe es groß geschrieben.
Nun geht es, danke!
Gruss Compu
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
Aktuelle PHP Scripte
Homepagetools 2022
Kostenloses Gästebuch und Homepagetools für die eigene Homepage.
Bei GuxDu kann man sich kostenlos die Websitetools auf die vorhandene Website einbauen. Zudem kann man bei GuxDU auch eine eigene Homepage mit 3D Effekten erstellen. GuxDu ist kostenlos.
29.04.2022
freepler | Kategorie: PHP/ Gaestebuch
|
SF-Shopsystem V1.0
Hier haben wir ein einzigartiges Shopsystem in PHP.
Die Anzahl der Artikel ist unbegrenzt, einfach zu bedienen und erklärt sich.
Ausführliche Beschreibung weiter unten.
28.04.2022
Speedcrawler | Kategorie: PHP/ Shops
|
Anzeigen Markt mit PayPal Bezahl System
Anzeigen Markt Script
mit PayPal Bezahl System
Der Benutzer hat die Möglichkeit sofort nach Bezahlung mit PayPal
seine Anzeigen zu schalten, je nach seinem Guthaben.
27.04.2022
Webace_de | Kategorie: PHP/ Anzeigenmarkt
|
Alle PHP Scripte anzeigen
|