所以我一直在考虑这个问题,想知道我的 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;
永远不会执行。继承链有问题吗?