Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 静态地从子类调用_构造(?)_Php_Inheritance_Constructor - Fatal编程技术网

Php 静态地从子类调用_构造(?)

Php 静态地从子类调用_构造(?),php,inheritance,constructor,Php,Inheritance,Constructor,我有以下php代码: <?php class ParentClass { public $table_name; function __construct() { $this->table_name = strtolower(__CLASS__); } } class ChildClass extends ParentClass { function __construct() { parent::__con

我有以下php代码:

<?php

class ParentClass {

    public $table_name;

    function __construct() {
        $this->table_name = strtolower(__CLASS__);
    }

}

class ChildClass extends ParentClass {

    function __construct() {
        parent::__construct();
        //And I also want to put here other codes
    }

}

$parent = new ParentClass();
$child = new ChildClass();

echo $parent->table_name . "<br />" . $child->table_name;

?>
不管我想怎样

parentclass
childclass
parentclass
childclass
我如何做到这一点? 后期的静态绑定可以解决我的问题,但是它当然不能被称为静态绑定。

这适用于PHP5.5及以上版本:

class ParentClass 
{
    public $table_name;

    public function __construct() 
    {
        $this->table_name = strtolower(static::class);
    }
}

class ChildClass extends ParentClass 
{
    public function __construct() 
    {
        parent::__construct();     
        // ...
    }
}

$parent = new ParentClass();
$child = new ChildClass();

echo $parent->table_name . "<br />" . $child->table_name;
class父类
{
公共$table_name;
公共函数构造()
{
$this->table_name=strtolower(static::class);
}
}
类ChildClass扩展了ParentClass
{
公共函数构造()
{
父项::_构造();
// ...
}
}
$parent=新的父类();
$child=新的子类();
echo$parent->table\u name。“
”$子->表名称;

有关参考信息,请参见。

这适用于PHP5.5及以上版本:

class ParentClass 
{
    public $table_name;

    public function __construct() 
    {
        $this->table_name = strtolower(static::class);
    }
}

class ChildClass extends ParentClass 
{
    public function __construct() 
    {
        parent::__construct();     
        // ...
    }
}

$parent = new ParentClass();
$child = new ChildClass();

echo $parent->table_name . "<br />" . $child->table_name;
class父类
{
公共$table_name;
公共函数构造()
{
$this->table_name=strtolower(static::class);
}
}
类ChildClass扩展了ParentClass
{
公共函数构造()
{
父项::_构造();
// ...
}
}
$parent=新的父类();
$child=新的子类();
echo$parent->table\u name。“
”$子->表名称;

有关参考信息,请参见。

使用
static::class
获取使用后期静态绑定的类的名称:

class ParentClass {

    public $table_name;

    function __construct() {
        $this->table_name = strtolower(static::class);
    }

}
这将产生所需的结果


使用
static::class
获取使用后期静态绑定的类的名称:

class ParentClass {

    public $table_name;

    function __construct() {
        $this->table_name = strtolower(static::class);
    }

}
这将产生所需的结果


我能知道你想要实现什么吗?是的,请重读我上面的问题。我能知道你想要实现什么吗?是的,请重读我上面的问题。