<?php
abstract class A {
protected static $self;
private function __construct() {
echo "parent constructor" ;
self::$self = $this;
}
public static final function AI() {
return new self;
}
}
class B extends A {
function c() {
echo get_class(static::$self);
}
}
$b = B::AI();
$b->c();
Fatal error: Uncaught Error: Cannot instantiate abstract class A in /in/gNiJY:12
Stack trace:
#0 /in/gNiJY(25): A::AI()
#1 {main}
thrown in /in/gNiJY on line 12
Process exited with code 255.