PHP - Ayuda con el uso de la función php array_map

 
Vista:

Ayuda con el uso de la función php array_map

Publicado por Gustavo Adolfo (1 intervención) el 15/06/2018 19:17:31
Buenos días, necesito ayuda para poder seguir una función muy corta que adjunto a continuación: (en realidad es la definición del método 'strip_slashes' de la clase 'Format')

1
2
3
function strip_slashes($var) {
    return is_array($var)?array_map(array('Format','strip_slashes'),$var):stripslashes($var);
}


En principio la función evalúa el tipo de dato del parámetro recibido.

Si el parámetro no es del tipo vector, entonces la función devuelve el parámetro recibido luego de aplicarle la función striplashes.

MI problema es cuando el parámetro recibido es un vector.

Por definición map_array aplica la función recibida como primer parámetro a cada elemento del vector recibido como segundo.

En este caso, la función a aplicar es array('Format', 'strip_slashes').

No tendría sentido construir el método strip_slashes para que devuelva un vector del mismo largo que el recibido, pero reemplazando cada elemento por un vector de 2 elementos, uno con la constante 'Format' y otro con la constante 'strip_slashes'.

Eso sumado a que 'strip_slashes' es un método de 'Format' es que me inclino a pensar que se trata de una forma (críptica para mi) de una invocación recursiva que devolverá a la postre un vector del mismo largo del parámetro recibido, pero donde cada elemento del vector original es reemplazado por un vector de 2 elementos, uno con el elemento original y el otro con dicho elemento original luego de aplicarle striplashes.

Mi problema es que no logro interpretar como es que realmente el método pueda actúar de esa forma,

adjunto el archivo class.form.zip que contiene el archivo class.form.php donde está definido el método estudiado.

Desde ya agradezco cualquier ayuda que me permita no solo entender este método..sino poder escribir código mas compacto.

Gustavo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder