我对一个简单的PHP类扩展有疑问。当我有这个父类时:
<?php
class Parent
{
protected $_args;
public function __construct($args)
{
$this->_args = $args;
}
}
?>
我想使用以下内容进行扩展:
<?php
class Child extends Parent
{
public function __construct($args)
{
parent::__construct($args);
/* Child constructor stuff goes here. */
}
}
?>
我使用以下方法调用此子类:
new Child($args);
这一切都没有任何问题,但问题是:是否可以在子节点中有一个“干净”的构造函数,而不必将所有构造函数参数传递给父元素?我看到Kohana框架使用了这种技术,但我无法弄清楚如何去做。
答案 0 :(得分:6)
您可以定义从父构造函数调用的init()
方法。
class Parent
{
protected $_args;
public function __construct($args)
{
$this->_args = $args;
$this->init();
}
protected function init() {}
}
class Child extends Parent
{
protected function init()
{
// Do stuff...
}
}