OOP使用带继承的getX()访问受保护的属性

时间:2013-08-06 22:39:22

标签: php inheritance abstract protected

我尝试使用继承类访问受保护的属性,但是当我使用$ this-> getContainer()获取我的value属性时,我得到了NULL值,我不知道为什么......

我非常简化了我的代码:

<?php

abstract class Kernel
{
    protected $container;

    public function __construct() {
        $this->setContainer(['config' => 'OK']);
    }

    public function setContainer($array) {
        $this->container = $array;
    }

    public function getContainer() {
        return $this->container;
    }
}

class AppKernel extends Kernel {

}

class FrontController extends AppKernel
{
    public function __construct() {
        var_dump($this->getContainer());
    }
}

// Init
$kernel = new AppKernel();

$FrontController = new FrontController();

Normaly,当我调用新的FrontController时,它应该在我的受保护属性中打印我的数组,但我得到了NULL。

有人可以帮我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

你要覆盖默认的构造函数。 将parent :: __ construct添加到前端控制器构造函数