php中init函数的继承
所以我已经思考了一段时间,想知道我的init函数是否能正常工作。这源于Zend框架中的 假设我有这样一个基类: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
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中回音时,它不起作用。