PHP, как обеспечить создание родительского класса
Что является лучшим способом гарантировать, что родительский класс всегда создается, так как мы можем легко переопределить конструкторы, не вызывая их вообще.
Кроме того: это плохая практика?
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 ответ
Вы можете явно вызвать конструктор родителя, вызвав:
parent::__construct(<params>);
Кроме того, насколько я знаю, конструкторы должны быть public
,