PHP 5.3+ を使用し、次のようなものを使用すると、「B」ではなく「C」の出力が得られます。
class A
{
public static function doSomething()
{
echo get_called_class();
}
}
class B extends A
{
public static function doMore()
{
self::doSomething();
}
}
class C extends B {}
C::doMore();
static::doSomething() を使用した場合、それは期待される結果になりますが、self::doSomething() を使用する場合、このメソッドは B のスコープで呼び出されると予想されます。遅延静的バインディング。
それはどのように説明され、doSomething() メソッドで「B」を取得するにはどうすればよいですか?
前もってありがとう、JS