我有2个班级,其中父母是由孩子继承的。
class parentClass
{
private $table_name='';
public function __construct($argument)
{
$this->table_name=$argument;
echo $this->table_name;
}
}
class child extends parentClass
{
private $table="student";
public function __construct()
{
parent::__construct($this->table);
}
}
下面有一些必须使用的东西,但我无法理解如何以及为什么。
$args = func_get_args();
call_user_func_array(array($this, 'parent::__construct'), $args);
帮助我
实现正确逻辑的正确代码应该是什么 并请支持它,以获得更好的理解。
答案 0 :(得分:0)
不是一个直接的答案,但如果我正确阅读了代码,你真的不想将变量/值传递给构造函数。相反,您希望传递一个固定的类属性,如表名。
在这种情况下,你可以在子类中使用一个常量,并在父的构造函数中设置它。如果你想做的话,子类不需要单独的构造函数。
class parentClass
{
private $table_name;
function __construct() {
$this->table_name = static::TABLE;
echo $this->table_name;
}
}
class childClass extends parentClass
{
const TABLE = "student";
}
$obj = new childClass();