widacaro evobas

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 ...

  1. If($tipo_animal==0){  
  2.  $nombre="Cangrejo";  
  3. }elseif($tipo_animal==1){  
  4. $nombre="Oso";  
  5. }elseif($tipo_animal==2){  
  6. $nombre="Lobo";  
  7. }elseif($tipo_animal==3){  
  8. $nombre="Ballena";  
  9. }elseif($tipo_animal==4){  
  10. $nombre="Caballo";  
  11. }else ....  

... como si tenemos un switch ...
  1. Switch ($tipo_animal)  
  2. case 0:  
  3. $nombre="Cangrejo";  
  4. break;  
  5. case 1:  
  6. $nombre="Oso";  
  7. break;  
  8. case 2:  
  9. $nombre="Lobo";  
  10. break;  
  11. case 3:  
  12. $nombre="Ballena";  
  13. break;  
  14. case 4:  
  15. $nombre="Caballo";  
  16. break;  
  17. ...  

Podemos simplificar el código creando un array:
  1. //crea un array con los nombres, posición 0 tiene Cangrejo, 1 Oso ... etc ... etc ...  
  2. $nombre_animal=array('Cangrejo','Oso','Lobo','Ballena','Caballo''...');  
  3. //accediendo así  
  4. $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:
  1. //crea un array con los nombres, clave animal1 tiene Cangrejo, animal2 Oso ... etc ... etc ...  
  2. $nombre_animal=array('animal1'=>'Cangrejo''animal2'=>'Oso''animal3'=>'Lobo''animal4'=>'Ballena''animal5'=>'Caballo''...');  
  3. //accediendo así  
  4. $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: