在下面的PHP代码中,我想用函数__CLASS__
(或类似的东西)替换Foo
类中的__X__()
魔术常量,以便在方法{{1从hello()
类的实例$bar
调用它,它会打印Bar
(而不是hello from Bar
)。我想这样做
不覆盖hello from Foo
内的hello()
。
基本上,我想要一个Bar
版本,它在运行时而不是在编译时动态绑定。
__CLASS__
输出:
class Foo {
public function hello() {
echo "hello from " . __CLASS__ . "\n";
}
}
class Bar extends Foo {
public function world() {
echo "world from " . __CLASS__ . "\n";
}
}
$bar = new Bar();
$bar->hello();
$bar->world();
我想要这个输出(不在hello from Foo
world from Bar
内覆盖hello()
):
Bar
答案 0 :(得分:2)
您可以简单地使用get_class()
,如下所示:
echo "hello from " . get_class($this) . "\n";
echo "world from " . get_class($this) . "\n";
输出:
hello from Bar
world from Bar