PHP 8.3.4 Released!

ReflectionClass::newInstance

(PHP 5, PHP 7, PHP 8)

ReflectionClass::newInstanceCréer une nouvelle instance de la classe en utilisant les arguments fournis

Description

public ReflectionClass::newInstance(mixed ...$args): object

Créer une nouvelle instance de la classe en utilisant les arguments fournis à son constructeur.

Liste de paramètres

args

Accepte un nombre variable d'arguments qui sont passés au constructeur, comme pour la fonction call_user_func().

Valeurs de retour

Erreurs / Exceptions

Une ReflectionException si le constructeur n'est pas public.

Une ReflectionException si la classe n'a pas de constructeur et que le paramètre args contient au moins un paramètre.

Voir aussi

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