PHP での静的遅延バインディングの簡単な例
私はこの新しい機能をあまり使ったことはありませんが、実際にはまったく新しいものではありません。試してみてください。静的クラスの継承は非常に便利です
クラスA {
protected static $def = '123456';
public static function test() {
echo get_class(new static);
}
パブリック静的関数 test2() {
エコー静的::$def;
}
}
クラス B は A を拡張します {
protected static $def = '456789';
}
クラス C は A を拡張します {
protected static $def = 'abcdef';
}
echo B::test();
エコー
';
echo C::test();
エコー
';
echo B::test2();
エコー
';
echo C::test2();
エコー
';
echo A::test();
エコー
';
echo A::test2();
エコー
';
// 結果を出力する
B
C
456789
abcdef
あ
123456