Nube

lunes, 28 de julio de 2008

Convertir un switch/nido de ifs en un array

Optimizar un switch o nido de ifs en una array tiene sus ventajas a la hora de optimizar/visualizar el código.

Por ejemplo tanto si tenemos un nido de ifs ...


If($tipo_animal==0){
$nombre="Cangrejo";
}elseif($tipo_animal==1){
$nombre="Oso";
}elseif($tipo_animal==2){
$nombre="Lobo";
}elseif($tipo_animal==3){
$nombre="Ballena";
}elseif($tipo_animal==4){
$nombre="Caballo";
}else ....

... como si tenemos un switch ...

Switch ($tipo_animal)
case 0:
$nombre="Cangrejo";
break;
case 1:
$nombre="Oso";
break;
case 2:
$nombre="Lobo";
break;
case 3:
$nombre="Ballena";
break;
case 4:
$nombre="Caballo";
break;
...

Podemos simplificar el código creando un array:

//crea un array con los nombres, posición 0 tiene Cangrejo, 1 Oso ... etc ... etc ...
$nombre_animal=array('Cangrejo','Oso','Lobo','Ballena','Caballo', '...');
//accediendo así
$nombre=$nombre_animal[$tipo_animal];


Si por el contario nuestra array necesita otro tipo de clave podemos asignársela también como si de una colección se tratase:

//crea un array con los nombres, clave animal1 tiene Cangrejo, animal2 Oso ... etc ... etc ...
$nombre_animal=array('animal1'=>'Cangrejo', 'animal2'=>'Oso', 'animal3'=>'Lobo', 'animal4'=>'Ballena', 'animal5'=>'Caballo', '...');
//accediendo así
$nombre=$nombre_animal[$clave_animal];


PHP tiene un gran surtido de funciones para la utilización de arrays.
Documentación PHP.net

No hay comentarios: