PHP-继承时构造函数如何解析数据?
我有两个类,一个扩展另一个:PHP-继承时构造函数如何解析数据?,php,oop,Php,Oop,我有两个类,一个扩展另一个: class Human { const PERKS = 'none'; public function __construct() { echo self::PERKS; } } class King extends Human { const PERKS = 'crown'; } 忽略这个愚蠢的例子。然而,无论我初始化谁,我都会被打印为“无” 构造函数究竟是如何工作的 我怎样才能避开这件事 谢谢。self总是指使
class Human {
const PERKS = 'none';
public function __construct() {
echo self::PERKS;
}
}
class King extends Human {
const PERKS = 'crown';
}
忽略这个愚蠢的例子。然而,无论我初始化谁,我都会被打印为“无”
谢谢。
self
总是指使用它的确切类。发件人:
对当前类的静态引用,如self::orclass使用函数所属的类进行解析,如在定义函数的位置
为了解决这个问题,您可以使用静态
类解析操作符,它在运行时解析,例如
class Human {
const PERKS = 'none';
public function __construct() {
echo static::PERKS;
}
}
class King extends Human {
const PERKS = 'crown';
}
new King;
// crown
new Human;
// none
请参见
self
始终指使用它的确切类。发件人:
对当前类的静态引用,如self::orclass使用函数所属的类进行解析,如在定义函数的位置
为了解决这个问题,您可以使用静态
类解析操作符,它在运行时解析,例如
class Human {
const PERKS = 'none';
public function __construct() {
echo static::PERKS;
}
}
class King extends Human {
const PERKS = 'crown';
}
new King;
// crown
new Human;
// none
请参见在那里阅读-在那里阅读-