elseif
/else if
(PHP 4, PHP 5, PHP 7, PHP 8)
elseif
, como su nombre lo sugiere, es una combinación de if
y else
. Del mismo modo que else
, extiende una sentencia if
para ejecutar una sentencia diferente en caso que la expresión if
original se evalúe como false
. Sin embargo, a diferencia de else
, esa expresión alternativa sólo se ejecutará si la expresión condicional del elseif
se evalúa como true
. Por ejemplo, el siguiente código debe mostrar a es mayor que b, a es igual que b o a es menor que b:
<?php
if ($a > $b) {
echo "a es mayor que b";
} elseif ($a == $b) {
echo "a es igual que b";
} else {
echo "a es menor que b";
}
?>
Puede haber varios elseif
dentro de la misma sentencia if
. La primera expresión elseif
(si hay alguna) que se evalúe como true
sería ejecutada. En PHP también se puede escribir 'else if' (en dos palabras) y el comportamiento sería idéntico al de 'elseif' (en una sola palabra). El significado sintáctico es ligeramente diferente (si se está familiarizado con C, este es el mismo comportamiento) pero la conclusión es que ambos resultarían tener exactamente el mismo comportamiento.
La sentencia elseif
es ejecutada solamente si la expresión if
precedente y cualquiera de las expresiones elseif
precedentes son evaluadas como false
, y la expresión elseif
actual se evalúa como true
.
Nota: Tenga en cuenta que
elseif
yelse if
serán considerados exactamente iguales sólamente cuando se utilizan llaves como en el ejemplo anterior. Al utilizar los dos puntos para definir las condicionesif
/elseif
, no debe separarseelse if
en dos palabras o PHP fallará con un error del interprete.
<?php
if ($a > $b):
echo $a." es mayor que ".$b;
else if ($a == $b): // No compilará
echo "La línea anterior provoca un error del interprete.";
endif;
if ($a > $b):
echo $a." es mayor que ".$b;
elseif ($a == $b): // Tenga en cuenta la combinación de las palabras.
echo $a." igual ".$b;
else:
echo $a." no es ni mayor ni igual a ".$b;
endif;
?>