- spl_autoload_register: documentation ( source)
- set_error_handler: documentation ( source)
<?php
spl_autoload_register(function($class){
if ($class == 'MyConcrete') {
eval('
class MyConcrete extends MyAbstract {
public static function createInstance() {}
}
');
} elseif ($class == 'MyAbstract') {
eval('
abstract class MyAbstract {
public abstract static function createInstance();
}
');
} else {
eval('class '.$class.'{}');
}
});
set_error_handler(function($errno, $errstr, $errfile, $errline){
$myclass = new MyClass;
});
$concrete = new MyConcrete;
$myclass = new MyClass;