第10章 オブジェクト指向構文 / 第4回 模擬試験

PHPの遅延静的束縛(Late Static Binding)に関する次の記述のうち、正しいものはどれか。

`static::`キーワードを使うと、呼び出し元の実際のクラスを基準にメソッドが解決される。 正解
`self::`と`static::`は、継承関係があっても常に全く同じ動作をする。
遅延静的束縛はインスタンスメソッドでのみ有効で、静的メソッドでは使用できない。
遅延静的束縛はPHP5より前のバージョンから存在する古い機能である。
解説
`static::`は実行時に実際に呼び出されたクラス(子クラスなど)を基準に解決されるのに対し、`self::`は定義時のクラスに固定されます。この違いが遅延静的束縛と呼ばれる仕組みです。(参照: 独習PHP 第4版 第10章 オブジェクト指向構文 10.3.7節 遅延静的束縛 p.509〜510)