php如何确保父类被构造

时间:2011-01-24 15:15:48

标签: php class parent extend construction

确保父类总是被构造的最佳方法是什么,因为我们可以轻松地覆盖构造函数而不必完全调用它们。

另外:这是不好的做法吗?

abstract class A
{
 // make it final to ensure parent constructor is allways used
 final function __construct($param1)
 {
  // do essencial stuff here with $param1
  // pass construction with remaining args to child
  call_user_func_array(array($this,'init'),array_slice(func_get_args(),1));
 }
 abstract function init();
}

class B extends A
{
 function init($param2)
 {
  // effectively extends parent constructor, no?
 }
}

$obj = new B("p1","p2");

1 个答案:

答案 0 :(得分:2)

您可以通过调用:

显式调用父的构造函数
parent::__construct(<params>);

据我所知,构造函数应为public