(PHP 4, PHP 5, PHP 7, PHP 8)
elseif, como su nombre indica, es una combinación
de if y de else. Como la expresión
else, permite ejecutar una instrucción
después de un if en el caso de que el "primer"
if sea evaluado como false. Sin embargo,
a diferencia de la expresión else,
solo ejecutará la instrucción si la expresión condicional
elseif es evaluada como
true. El siguiente ejemplo mostrará
a es más grande que b,
a es igual a b o
a es más pequeño que b :
<?php
if ($a > $b) {
echo "a es más grande que b";
} elseif ($a == $b) {
echo "a es igual a b";
} else {
echo "a es más pequeño que b";
}
?>
Es posible tener varios elseif que se sigan
unos a otros, después de un if inicial.
El primer elseif que sea evaluado
como true será ejecutado. En PHP, es posible escribir
else if en dos palabras y su comportamiento será idéntico
al de elseif (en una sola palabra). La semántica
de las dos expresiones es ligeramente diferente (al igual que en C), pero al final,
el resultado será exactamente el mismo.
La expresión elseif es ejecutada
solo si el if anterior y cualquier otro
elseif anterior son
evaluados como false, y que
su elseif es evaluado como
true.
Nota: Téngase en cuenta que
elseifyelse ifson tratados de la misma manera solo cuando se utilizan llaves, como en el ejemplo anterior. Cuando se utiliza ":" para definir sus condicionesif/elseif, el uso deelseifen una sola palabra se vuelve necesario. PHP fallará con un error de análisis si se utilizaelse if.
<?php
/* Mala práctica: */
if ($a > $b):
echo $a." es más grande que ".$b;
else if ($a == $b): // no compilará
echo "La línea anterior provoca un error de interpretación";
endif;<?php
/* Buena práctica: */
if ($a > $b):
echo $a." es más grande que ".$b;
elseif ($a == $b): // Las dos palabras están unidas
echo $a." igual ".$b;
else:
echo $a." es más grande o igual a ".$b;
endif;
?>