PHP 8.3.4 Released!

ReflectionClass::newInstance

(PHP 5, PHP 7, PHP 8)

ReflectionClass::newInstanceCrea una nueva instancia de clase a partir de la lista de parámetros dados

Descripción

public ReflectionClass::newInstance(mixed $args, mixed $... = ?): object

Crea una nueva instancia de la clase. Los parámetros proporcionados se pasarán al constructor de la clase.

Parámetros

args

Acepta un número variable de argumentos, que se pasarán al constructor de la clase. Similar a como hace call_user_func().

Valores devueltos

Errores/Excepciones

Lanza ReflectionException si el constructor de la clase no fuera público.

Lanza ReflectionException si la clase no tuviera un constructor y el parámetro args tuviera uno o más argumentos.

Ver también

add a note

User Contributed Notes 1 note

up
-11
glen at delfi dot ee
8 years ago
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
To Top