PHP4->Vererbung

hi,

mir ist nicht klar, wie in PHP vererbt wird. In JAVA werden alle Methoden vererbt. in PHP nicht? finde zu extends keine wirklich deutlichen docs bei php.net :frowning:

geht um php4

warum funktioniert mein unteres beispiel nicht???

class vater{

 function eins($var1, $var2){

 $sum = $var + $var2;
 return $sum;
 }
}

class kind extends vater{


 function zwei($var1,$var2){
 get\_parent\_class($this)-\>eins($var1,$var2);

 }
}

$check = new kind();
$result = $check-\>zwei(1,2);

echo "das ergebnis ist: ".$result;

Hi PixelKönig,

warum funktioniert mein unteres beispiel nicht???

So wie Du es angegeben hast, sollte das ohne ‚get_parent_class‘ funktionieren, also nur mit

$this-\>eins($var1, $var2);

in der Klasse „Kind“. Die Methoden werden bei extends alle in die neue Klasse vererbt, Method-Overloading wird nicht unterstützt in PHP4.
Dein Beispiel erzeugt auch keine Ausgabe, solange die Funktion ‚zwei‘ keinen Rückgabewert hat, die Zeile sollte also sein:

return $this-\>eins($var1, $var2);

Schönen Gruß,
Rudy

hu rudy,

return $this-\>eins($var1, $var2);

warum brauche ich da einen rueckgabewert?
das sollte eigentlich ein funktionsaufruf werden.
und die funktion „eins“ sollte sich um alles kuemmern?

grusz

PixelKoenig

Hi Pixelkönig,

return $this->eins($var1, $var2);

warum brauche ich da einen rueckgabewert?

Deshalb:

$result = $check-\>zwei(1,2);

echo "das ergebnis ist: ".$result;

Wenn „zwei“ nichts zurückgibt, keine Ausgabe.

das sollte eigentlich ein funktionsaufruf werden.
und die funktion „eins“ sollte sich um alles kuemmern?

Funktion „zwei“ übergibt die Variablen $var1 und $var2 and die vererbte Funktion „eins“, die bildet die Summe und gibt das Ergebnis an „zwei“ zurück. Danach muss „zwei“ etwas mit dem Ergebnis machen, sonst gibt das $result = $check->zwei(…) keinen Sinn.

Schönen Gruß,
Rudy

Guten Morgen,
in PHP4 gabs auch schon das keyword „parent“
also konkret:

class A {
 function foo () {
 }
}

class B extends A {
 function foo () {
 parent::foo();
 }
}

das ganze bei php.net
http://www.php.net/manual/en/keyword.extends.php

gruß thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

warn doofer denk knoten :smile:

danke dir

grusz

PixelKoenig