- spl_autoload_register: documentation ( source)
<?php
spl_autoload_register(function($class) {
if ($class === 'A') {
class A {
public function foo($x): B {
return new B;
}
}
} else if ($class === 'B') {
class B extends A {
public function foo($x): C {
return new C;
}
}
} else if ($class === 'C') {
class C extends B {
}
}
});
(new C)->foo('blah');