php中init函数的继承

php中init函数的继承,php,zend-framework,init,object-initialization,Php,Zend Framework,Init,Object Initialization,所以我已经思考了一段时间,想知道我的init函数是否能正常工作。这源于Zend框架中的 假设我有这样一个基类: class Base{ public function __construct(){ $this->init(); } public function init(){} } 现在让我们假设我有一个这样的类,它需要接受构造函数中的options参数。我不知道为什么不在父类中使用init函数,但这个示例基于我无法共享的真实代码 class

所以我已经思考了一段时间,想知道我的init函数是否能正常工作。这源于Zend框架中的

假设我有这样一个基类:

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

    public function init(){}
}
现在让我们假设我有一个这样的类,它需要接受构造函数中的options参数。我不知道为什么不在父类中使用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”;退出从不执行。继承链有什么问题吗?

这段代码执行得恰到好处。正如

所提供的,您所说的应该有效,但存在一些语法错误<代码>类EchoHello扩展扩展数据库
,没有
扩展数据库
类,它是
扩展数据库
专用选项您缺少一些内容:
私有$\u选项为此道歉,我就写在这里。很抱歉出现语法错误。我不知道这种类型的继承是否有效。我没有尝试过,但我确信它可以按照您的预期工作(当然没有错误),也许您的原始代码的问题在其他地方。如果有人可以尝试,我已经更新了代码以删除错误。。。原始代码的设置非常类似。当我试着在它的init中回音时,它不起作用。