Simple example of static late binding in PHP
I haven’t used this new feature much. It’s not really new at all. Give it a try. Inheriting static classes is very convenient now
class A {
protected static $def = '123456';
public static function test() {
echo get_class(new static);
}
public static function test2() {
echo static::$def;
}
}
class B extends A {
protected static $def = '456789';
}
class C extends A {
protected static $def = 'abcdef';
}
echo B::test();
echo '
;
echo C::test();
echo '
;
echo B::test2();
echo '
;
echo C::test2();
echo '
;
echo A::test();
echo '
;
echo A::test2();
echo '
;
// Output results
B
C
456789
abcdef
A
123456