Je veux appeler une fonction avec call_user_func_array mais j'ai remarqué que si un argument est une référence dans la définition de la fonction et est une valeur simple dans call_user_func_array, l'avertissement suivant apparaît: Attention: Le paramètre 1 à tester() devrait être un référence, la valeur donnéePHP Comment savoir si une variable est une référence?
Voici un exemple simple de ce que je suis en train de faire:
<?php
$a = 0;
$args = array($a);
function test(&$a) {
$a++;
}
$a = 0;
call_user_func_array('test', $args);
?>
Ma question est: comment puis-je savoir si une valeur (dans ce cas, la première valeur de $ args) est une référence ou pas?
Tout ce que je vois est des fonctions pour vérifier si deux tableaux/objets/variables pointent vers la même zone de mémoire en modifiant l'un et vérifier si l'autre est modifié aussi. Dans mon code (pas l'exemple, le vrai), je n'ai que le tableau d'arguments et je veux savoir si un argument est une référence. De cette façon, je peux lancer une erreur si la fonction de rappel veut une référence et que le tableau contient une valeur simple. –
Il déclenche déjà un avertissement, destiné aux développeurs. Quel genre d'erreur voulez-vous? Vous pouvez [définir un gestionnaire d'erreur personnalisé] (http://php.net/set_error_handler) si vous voulez modifier le comportement – cmbuckley