Voglio chiamare una funzione con call_user_func_array ma ho notato che se un argomento è un riferimento nella definizione della funzione ed è un valore semplice in call_user_func_array, viene visualizzato il seguente avviso: Avviso: il parametro 1 da test() dovrebbe essere un di riferimento, il valore datoPHP Come sapere se una variabile è un riferimento?
Ecco un semplice esempio di quello che sto cercando di fare:
<?php
$a = 0;
$args = array($a);
function test(&$a) {
$a++;
}
$a = 0;
call_user_func_array('test', $args);
?>
la mia domanda è: come posso sapere se un valore (in questo caso il primo valore di $ args) è un riferimento o no?
vedo solo le funzioni per controllare se due matrici/oggetti/variabili puntano alla stessa area di memoria modificando uno e controllando se anche l'altro viene modificato. Nel mio codice (non nell'esempio, quello reale), ho solo la matrice di argomenti e voglio sapere se un argomento è un riferimento. In questo modo, posso lanciare un errore se la funzione di callback vuole un riferimento e la matrice contiene un valore semplice. –
Attivano già un avviso, destinato agli sviluppatori. Che tipo di errore vuoi? È possibile [impostare un gestore errori personalizzato] (http://php.net/set_error_handler) se si desidera modificare il comportamento – cmbuckley