Вы можете достичь некоторых интересных результатов с помощью PHP Reflection library .
function Load( $class, $args )
{
$reflection = new ReflectionClass( $class );
$object = $reflection->newInstanceArgs( $args );
return $object;
}
Это упрощено и подразумевает использование функции __autoload
, а также не проверяетпространства имен, если вы используете их, плюс он будет создавать новый экземпляр класса каждый раз, когда вы его вызываете, поэтому вам нужно будет реализовать массив объектов, чтобы отслеживать, какие из них вы уже создали, и т. д.
А для базовой документации: $class
- это строка с именем класса, который вы хотите создать, а $args
- массив аргументов, которые вы передадите методу __construct( )
.