schaut euch mal bitte folgenden Beispielcode an:
Code: Alles auswählen
abstract class A {
private $variable;
public function a() {
$this->variable = a;
}
public function setVar($var) {
$this->variable = $a;
}
public funtion show() {
echo $this->variable;
}
abstract function work();
}
Code: Alles auswählen
class B extends A {
public function work() {
setVar("XXX");
}
}
Das Problem: ich kan das Feld "variable" der Klasse A ums verrecken nicht verändern!
will heißen:
wenn ich jetzt hingehe und ein Objekt der Klasse B erstelle, work() aufrufe (also sie variable setze) und sie dann mit show() abfrage erhalte ich IMMER einen leeren String, auch das erste Setzen im Konstruktor funktioniert nicht.
ich hab schon alles versucht, vom parentconstructor in B bishin zu einfachen settern. Das einzige was funktioniert ist, wenn ich die variable protected oder public mache, in B redeklariere (!) und ihr dort entweder direkt oder im Kontruktor einen Wert zuweise, aber das bringt mir nichts!
weis da jemand weiter?