Ich habe Eltern und Kind-Klassen wie folgt:Zugriff Muttereigenschaften und überschriebenen Methoden in PHP
abstract class ParentObj {
private $data;
public function __construct(){
$this->data = array(1,2,3);
var_dump($this->data);
$this->method();
}
public function method(){
echo "ParentObj::method()";
}
}
class ChildObj extends ParentObj {
public function __construct(){
parent::__construct();
var_dump($this->data);
}
public function method(){
echo "ChildObj::method()";
}
}
Die erwartete Ausgabe:
array(1,2,3)
ChildObj::method()
array(1,2,3)
Der tatsächliche Ausgang:
array(1,2,3)
ParentObj::method()
NULL
Die Das Problem besteht darin, dass das untergeordnete Objekt nicht auf die Dateneigenschaft zugreifen kann und dass das übergeordnete Objekt die überschriebene Methode in chil nicht aufruft d.
Mache ich etwas falsch oder hat jemand irgendwelche Ideen?
EDIT: Ich möchte klarstellen, dass ich ein ChildObj bin Instanziierung als $child = new ChildObj()
Okay, das Ändern des privaten in den geschützten Bereich behebt den Zugriff auf die Eigenschaft. –