<?php
abstract class A {
public static function get() {
static $instance = null;
if ($instance === null) {
$instance = new static();
}
return $instance;
}
}
final class B extends A {
}
final class C extends A {
}
var_dump(A::get());
var_dump(B::get());
var_dump(C::get());
Fatal error: Uncaught Error: Cannot instantiate abstract class A in /in/ZsPi2:6
Stack trace:
#0 /in/ZsPi2(18): A::get()
#1 {main}
thrown in /in/ZsPi2 on line 6
Process exited with code 255.