我试图在php中理解LSB并偶然发现了late static binding in PHP。我不明白在示例中如何解析$this
和static::
。 A::test()
同时包含$this->foo()
和static::foo()
。
这是我目前的理解
1)$this
是指在非静态上下文中调用对象。
2)static::
指静态上下文中的调用类。
现在b->test()
应该包含b->foo()
(这实际上应该失败了吗?)并且c->test()
应该包含c->foo()
对应的$this->foo()
。或者换句话说,$this
在继承方法中的表现如何?最后,static::
在非静态上下文中的行为如何?