Cytat(kreator @ 18.08.2008, 23:02:46 )

Jeżeli chcę dziedziczyć konstruktor z klasy napisanej w PHP4 do klasy napisanej w PHP5, to w jaki sposób to zrobić?
parent::__construct();
czy parent::nazwa_klasy();
Brak samodzielności ludzi mnie przeraża. A jakby odpowiedź nie padła kilka dni to siedziałbyś i czekał? Takie rzeczy sprawdza się samemu.
Ale jeśli nie znasz pojęcia
empiryzm to lecimy.
Po pierwsze musisz wiedzieć, że PHP5 nadal wykonuje funkcję o nazwie klasy jako konstruktor. Ale tylko wtedy kiedy funkcja
__construct() nie jest zdefiniowana. Ta wiedza Ci się przyda. A na potwierdzenie przykład:
<?php
class KlasaPHP5 {
public function KlasaPHP5() {
echo "Konstruktor (po staremu) KlasaPHP5\n"; }
}
new KlasaPHP5();
?>
Wynik:
Cytat
Konstruktor (po staremu) KlasaPHP5
A teraz Twoja sytuacja:
<?php
class KlasaPHP4 {
function KlasaPHP4() {
echo "Konstruktor KlasaPHP4\n"; }
}
class KlasaPHP5 extends KlasaPHP4 {
public function __construct() {
// cóż tu wpisać, co?
}
}
?>
To teraz na podstawie wiedzy zdobytej w poprzednim przykładzie wiesz, że kod ma wyglądać tak:
<?php
class KlasaPHP4 {
function KlasaPHP4() {
echo "Konstruktor KlasaPHP4\n"; }
}
class KlasaPHP5 extends KlasaPHP4 {
public function __construct() {
parent::__construct();
echo "Konstruktor KlasaPHP5\n"; }
public function KlasaPHP5() {
echo "Konstruktor (po staremu) KlasaPHP5\n"; }
}
new KlasaPHP5();
?>
Wynik:
Cytat
Konstruktor KlasaPHP4
Konstruktor KlasaPHP5
Ale to samo mogłeś zrobić sam