親クラスに値を設定したのに、親を拡張する子クラスの値にアクセスできないという奇妙な問題があります。
class Parent
{
protected $config;
public function load($app)
{
$this->_config();
$this->_load($app);
}
private function _config()
{
$this->config = $config; //this holds the config values
}
private function _load($app)
{
$app = new $app();
$this->index;
}
}
class Child extends Parent
{
public function index()
{
print_r($this->config); // returns an empty array
}
}
$test = new Parent();
$test->load('app');
そうすると、空の配列が出力されます。しかし、これを行うと、それらの構成値にアクセスできます。
private function _load($app)
{
$app = new $app();
$app->config = $this->config
$app->index;
}
と
class Child extends Parent
{
public $config;
....
}
次に、親から構成データにアクセスできます。