La técnica básica es muy sencilla, simplemente es definir un array asociativo con las claves que nos interesen y sus valores. Por ejemplo:
$ejemplo = array ( 'etiqueta' => 'La que sea', 'repetir' => 5 );
La ventaja es que así resulta bastante fácil mantener la interfaz de un método y pasarle un número indeterminado de parámetros. Sólo tenemos que declarar que pasaremos un array y será problema del método decidir qué hacer con él.
Algo así:
class ejemplo { function metodo ($argumentos ) { } }
Al ser $argumentos un array asociativo, en realidad le podemos pasar cualquier estructura de datos que se nos ocurra.
Valores por defecto
Para resolver el tema de los valores por defecto lo que haremos será definir una variable con una "plantilla" del array y luego mezclarla con el array que pasamos. De este modo, nos aseguramos de que el array final tenga todas las claves necesarias y, a la vez, los valores que hayamos pasado.
Por ejemplo:
$porDefecto = array ( 'etiqueta' => '', 'repetir' => 10, 'plantilla' => 'Campo = %campo% ', ); $array_final = array_merge ($porDefecto, $ejemplo);
Uso
Para utilizar los valores del array podemos optar por dos estrategias:
1. Utilizar el array, como en $array_final['repetir'].
2. Utilizar extract, para convertir las claves del array en variables y poder referirnos a ellas como $repetir y así.
El segundo método parece más legible, pero a veces me resulta más inteligible el primero. Una vez que hemos hecho "extract" de un array nos salen un montón de variables nuevas y puede ser fácil perder la pista de su origen, sin descontar el problema de que pueda haber conflictos de nombres. Pero es una elección personal, claro.
No hay comentarios:
Publicar un comentario