patrz poniższy przykład (PHP)Dostęp klasa nadrzędna własność z dzieckiem
class Parent
{
protected $_property;
protected $_anotherP;
public function __construct($var)
{
$this->_property = $var;
$this->someMethod(); #Sets $_anotherP
}
protected function someMethod()
...
}
class Child extends Parent
{
protected $parent;
public function __construct($parent)
{
$this->parent = $parent;
}
private function myMethod()
{
return $this->parent->_anotherP; #Note this line
}
}
Jestem nowy OOP i jestem trochę ignorantem.
Tutaj, aby uzyskać dostęp do właściwości rodziców, używam instancji tej klasy, która wydaje się błędna: S (nie trzeba wtedy być dzieckiem). Czy istnieje prosty sposób, aby zsynchronizować właściwości nadrzędne z właściwościami podrzędnymi i uzyskać bezpośredni dostęp do $ this-> anotherP bez konieczności użycia $ this-> parent-> anotherP?
tak. Wywołanie konstruktora parent :: __ było tym, czego potrzebowałem: O – shxfee
Och, tak, to jedna z trudnych rzeczy i nie myślałem o tym: jeśli twoja klasa potomna definiuje konstruktor, PHP nie wywoła konstruktora klasy nadrzędnej - co oznacza, że będziesz musiał zadzwonić sam * (patrz uwaga na http://fr.php.net/manual/en/language.oop5.decon.php) * –