我正在尝试不使用任何方法来实现它。
这有可能吗?
class Foo extends Bar{
const foo = static::class;
}
答案 0 :(得分:2)
https://php.net/manual/en/language.oop5.properties.php
初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖于运行时信息才能进行评估。
static
是延迟评估,仅在运行时进行评估,因此无法实现。
另请阅读 late static bindings
Late static bindings [...]引用最初在运行时调用的类。