親クラスは子クラスの外側から構築されるため、そのコンストラクターは子の内側から呼び出すことはできません。この場合、子から親のプロパティにアクセスするにはどうすればよいですか。
例:
class MyParent {
protected $args;
protected $child;
public function MyParent($args=false){
$this->args=$args;
$this->child=new MyChild();
}
public function main(){
$this->child->printArgs();
}
}
class MyChild extends MyParent{
public function MyChild(){}
public function printArgs(){
Echo "args: ".$this->args['key']." = ".$this->args['value']."\n";
}
}
$parent=new MyParent(array('key'=>'value'));
$parent->main();
実行すると、空の変数が返されます。
jgalley@jgalley-debian:~/code/otest$ php run.php
args: =