0

所以我一直在考虑这个问题,想知道我的 init 函数是否可以正常工作。这源于Zend Framework中对象初始化的思想。

假设我有一个像这样的基类:

class Base{
    public function __construct(){
        $this->init();
    }

    public function init(){}
}

现在假设我有一个类需要在构造函数中接受选项参数。为什么你不会在父类中使用 init 函数我不知道,但这个例子是基于我无法分享的真实代码。

class ExtendsBase extends Base{

    private $_options;

    public function __construct($options){
        parent::__construct();
        $this->_options = $options;
    }

    // Why even instantiate this if never using it?
    public function init(){
     parent::init();
    } 
}

因此,我们需要从那里扩展并用一些东西实际填充 init。

class EchoHello extends ExtendsBase{

    public function init(){
        parent::init();
        echo "hello"; exit;
    }
}

然后我们应该能够做到这一点:

$someVar = new EchoHello(array());
// Instantiate should echo hello and exit.

问题是echo "hello"; exit;永远不会执行。继承链有问题吗?

4

1 回答 1

0

Appranetly 这段代码执行它应该。正如此评估脚本运行所提供的。

于 2013-10-09T17:17:31.033 回答