ReflectionClass::newInstance

(PHP 5, PHP 7)

ReflectionClass::newInstanceСоздаёт экземпляр класса с переданными аргументами

Описание

public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

args

Принимает произвольное число аргументов, подобно функции call_user_func(), которые затем передаются в конструктор класса.

Возвращаемые значения

Ошибки

Если конструктор не является public (общедоступным), то это приведёт к выбросу исключения ReflectionException.

Если конструктор отсутствует, а параметр args имеет один и более аргументов, то это приведёт к выбросу исключения ReflectionException.

Смотрите также

Коментарии

looks like reflection class newInstance creates in memory representation of code where values are used, so using reference as constructor signature, you can not use this method.

as  the same input if called via new, or new $class works, but not via reflection:

 class a {
     public function __construct(&$a, $c) {
     }
 }

// this works
 $A = new stdClass();
 $a = new a($A, 11);

 // also this works
 $classname = "a";
 $a = new $classname($A, 10);

 // but this fails:
 $r = new ReflectionClass("a");
 $r->newInstance($A, 10);

 PHP Warning:  Parameter 1 to a::__construct() expected to be a reference, value given in reflection.php on line 15

 PHP Warning:  ReflectionClass::newInstance(): Invocation of a's constructor failed in reflection.php on line 15
2015-10-07 14:19:31
http://php5.kiev.ua/manual/ru/reflectionclass.newinstance.html

    Поддержать сайт на родительском проекте КГБ