Создание экземпляра класса PHP из строки: методы и примеры

Чтобы создать экземпляр класса PHP из строки, вы можете использовать следующие методы:

  1. Использование ключевого слова new:

    $classString = 'ClassName';
    $instance = new $classString();

    При этом создается новый экземпляр класса, указанного переменной $classString.

  2. Использование ReflectionClass:

    $classString = 'ClassName';
    $reflection = new ReflectionClass($classString);
    $instance = $reflection->newInstanceWithoutConstructor();

    Этот метод позволяет создать экземпляр без вызова конструктора класса.

  3. Использование call_user_func()или call_user_func_array():

    $classString = 'ClassName';
    $instance = call_user_func($classString.'::__construct');

    Этот метод напрямую вызывает конструктор класса.

  4. Использование eval()(не рекомендуется):

    $classString = 'ClassName';
    $instance = eval("return new $classString();");

    Этот метод оценивает строку как код PHP и создает экземпляр указанного класса.

Важно отметить, что использование eval()обычно не рекомендуется из-за рисков безопасности, поскольку он может выполнить любой код PHP, переданный в виде строки.