devo classi padre e figlio come segue:Accesso alle proprietà controllanti e metodi di override 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()";
}
}
Il risultato atteso:
array(1,2,3)
ChildObj::method()
array(1,2,3)
L'uscita effettiva:
array(1,2,3)
ParentObj::method()
NULL
Il il problema è che l'oggetto figlio non può accedere alla proprietà data e il genitore si rifiuta di chiamare il metodo sottoposto a override nel chil d.
Sto facendo qualcosa di sbagliato o qualcuno ha qualche idea?
EDIT: Devo chiarire che sto un'istanza di un ChildObj come $child = new ChildObj()
OK, la modifica delle correzioni private a protette l'accesso alla proprietà. –