- spl_autoload_register: documentation ( source)
- implode: documentation ( source)
- explode: documentation ( source)
- array_pop: documentation ( source)
<?php
spl_autoload_register('var_dump');
spl_autoload_register(function ($class) {
$classData = explode('\\', $class);
if (count($classData) > 1) {
$name = array_pop($classData);
$namespace = implode('\\', $classData);
eval('namespace '.$namespace.' { class '.$name.' { } }');
} else {
eval('class '.$classData[0].' { }');
}
});
new Foo();
new \Faz();
use Foo\Bar;
new Bar();
use Foo\Baz as Cat;
new Cat();
use Foo\Ciz;
new Ciz\Caz();