Quiero llamar a una función con call_user_func_array pero noté que si un argumento es una referencia en la definición de función y es un valor simple en call_user_func_array, aparece la siguiente advertencia: Advertencia: se espera que el parámetro 1 para test() sea un referencia, el valor dadoPHP ¿Cómo saber si una variable es una referencia?
Aquí es un simple ejemplo de lo que estoy tratando de hacer:
<?php
$a = 0;
$args = array($a);
function test(&$a) {
$a++;
}
$a = 0;
call_user_func_array('test', $args);
?>
Mi pregunta es: ¿Cómo puedo saber si un valor (en este caso, el primer valor de $ args) es una referencia o no?
Todo lo que veo es funciones para comprobar si dos matrices/objetos/variables apuntan a la misma área de memoria modificando uno y comprobar si el otro también está modificado. En mi código (no el ejemplo, el real), solo tengo la matriz de argumentos y quiero saber si un argumento es una referencia. De esta manera, puedo lanzar un error si la función de devolución de llamada quiere una referencia y la matriz contiene un valor simple. –
Ya desencadena una advertencia, que está destinada a los desarrolladores. ¿Qué tipo de error quieres? Podría [configurar un controlador de error personalizado] (http://php.net/set_error_handler) si desea modificar el comportamiento – cmbuckley