Estructuras condicionales en PHP IV: If… elseif… else
Tiempo de lectura: 3 min
Este artículo tiene 13 años o más. La información podría estar desactualizada.
Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
[Control de flujo o estructuras de control en PHP IV] Instrucciones IF/Elseif/Else
Valencia, 24/09/2012, G.B. Tras las estructuras condicionales o de control de flujoif y if… else, ahora toca el turno a la siguiente: if… elseif… else. Con elseif añadimos más posibilidades, más alternativas.
Elseif (también escrito else if, aunque menos frecuentemente) es una combinación de if y else y una ampliación de if. Si la condición contenida en el if es falsa (FALSE, que no se cumple), entonces el control de flujo saltará al primer elseif. Si éste tampoco se cumple, pasaría al siguiente, hasta llegar a un elseif en que la condición sí se cumpliera, que fuera verdadera (TRUE). En el caso de que no se cumpliera ninguno de los elseif, pasaríamos por último al else para ejecutar las sentencias contenidas en el mismo.
Como observamos, las estructuras elseif pueden anidarse, es decir, ir abriendo distintas posibilidades si no se cumplen las anteriores. La sintaxis es la siguiente:
if (condición1) { sentencia1; // Si esto no se cumple, saltamos al primer elseif } elseif (condición2) { sentencia2; }// Tras esta línea pueden ir anidados más elseif else { sentencia3; // Si ninguno de los elseif se han cumplido, se ejecutará estas sentencias }
En caso de que la primera condición, la del if, no se cumpla, pasamos al primer elseif. Si este tampoco se cumple, pasaríamos al siguiente, hasta llegar al else, en caso de que no se cumpliera ninguno de ellos. Veamos un pequeño ejemplo:
<?php $numero1 = '2'; $numero2 = '3'; $numero3 = '4'; $numero4 = '2'; if ($numero1 == $numero2) { print "El $numero1 es igual al $numero2."; } elseif ($numero2 == $numero3) { print "El $numero2 es igual al $numero3"; } elseif ($nunero3 == $nunero4) { print "El $numero3 es igual al $numero3"; } else { print "El $numero1 es igual al $numero4. ¿Lógico, no?"; } ?>
Ejecutar ejemplo
Otro ejemplo tonto, lo sé, pero espero que explicativo. También podemos ampliar el ejemplo que hemos utilizado en los anteriores posts sobre las estructuras condicionales, especificando franjas horarias más pequeñas:
<?php $hora = date (H); if ($hora == ('7') or $hora < ('8')){ echo 'Es hora de levantarse, campeón'; } elseif ($hora == ('14')){ echo '¿Qué vas a comer hoy?'; } elseif ($hora <= ('16')){ echo '¿Demasiado tarde para comer, ¿no crees?'; } elseif ($hora <= ('20')){ echo 'No, todavía no es hora de cenar'; } elseif ($hora == ('21') or $hora <= ('22')){ echo 'Ve pensando en lo que vas a cenar, si tienes hambre, claro'; elseif ($hora == ('23')){ echo 'Demasiado tarde para cenar, ¿no crees?'; / } elseif ($hora == ('1') or $hora <= ('2')){ echo 'Si no te has ido a dormir todavía, deberías hacerlo!'; } else echo 'Bienvenido'; ?>
Ejecutar ejemplo 2
Por último, comentaros que puede ser realmente engorroso tener que contemplar todas las posibilidades y así estar ‘obligados’ a utilizar un montón de elseif anidados. Este último ejemplo se puede hacer de una forma mucho mejor y más cómoda (sin tener en cuenta los posibles fallos de cálculo entre las franjas horarias que yo haya podido cometer al hacerlo…). Para ello, disponemos de la estructura switch, la cual es más sencilla de escribir (ahorramos líneas de código y conseguimos el mismo resultado que con if/elseif/else) y que veremos en el siguiente post. Hasta pronto!
Utilizamos cookies propias y de terceros para el correcto funcionamiento de nuestros servicios además de analizar la navegación que se realice para posteriormente realizar mejoras técnicas (por ejemplo, páginas visitadas). Puedes obtener más información visitando nuestra política de cookies y aviso legal y de privacidad, así como establecer las preferencias sobre el uso de esta tecnología.
Cookies funcionales Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos.El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.