Php 静态地从子类调用_构造(?)
我有以下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
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);
}
}
这将产生所需的结果
我能知道你想要实现什么吗?是的,请重读我上面的问题。我能知道你想要实现什么吗?是的,请重读我上面的问题。