在PHP中将参数传递给父类构造函数?

时间:2017-09-04 19:26:48

标签: php inheritance constructor

我有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);

帮助我

  

实现正确逻辑的正确代码应该是什么   并请支持它,以获得更好的理解。

1 个答案:

答案 0 :(得分:0)

不是一个直接的答案,但如果我正确阅读了代码,你真的不想将变量/值传递给构造函数。相反,您希望传递一个固定的类属性,如表名。

在这种情况下,你可以在子类中使用一个常量,并在父的构造函数中设置它。如果你想做的话,子类不需要单独的构造函数。

所以something like

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();