If y Else alternativos para combinar PHP y HTML de forma más simple

Aprende a combinar de forma más limpia php y html gracias a las sentencias alternativas if elseif y endif

php y html Condicionales php Estructuras de control php

En este tutorial vamos a ver una forma de representación alternativa al común IF y ELSE que solemos usar en php. En concreto es muy útil cuando realizamos nuestras plantillas combinando php y html.

Estructura de if y else alternativo

La representación alternativa de if y else se basa en reemplazar las llaves de apertura por dos puntos ":" y la llave de cierre por "endif;". Veamos un ejemplo gráfico:

<?php
if ( $a < 5 ):
    echo 'Hola mundo';
endif;
?>

A esta representación podemos además añadirle las sentencias else y else if:

<?php
if ( $a < 5 ):
   echo 'A es menor que 5';
elseif ( $a == 5 ):
   echo 'A es 5!!';
else:
   echo 'Por desgracia A es mayor que 5!';
endif;
?>

Como puedes ver su representación es sencilla y, aunque no sigue el estándar de la representación de las estructuras de control, podemos encontrarle ventajas para ciertos usos donde puede quedar confusa la representación más conocida por todos.

If y ElSE alternativo con html

El uso que a priori más me gusta para el uso de este IF y ELSE alternativos no es otro que el desarrollo de nuestras plantillas PHP. Un código es mejor que mil palabras:

<h2>
<?php if ( $action == 'profesional' ): ?>
    Bienvenido a la mejor <strong>web PROFESIONAL de programación</strong> del mundo
<?php elseif ( $action == 'amateur' ): ?>
   Bienveido querido amateur a la <strong>mejor web creada para programadores Amateur del mundo</strong>
<?php else: ?>
   ¡Seas quien seas! <strong>¡Bienvenido a la mejor web del mundo para aprender programación!</strong>
<?php endif; ?>
#lg;/h2> 

Si llevas algo de tiempo en esto (sino ya te lo confirmo yo) te habrás dado cuenta que una llave de cierre en una plantilla con html en ocasiones pasa a ser casi invisible, sobretodo en plantillas con html complejo. Como has podido ver, esta representación es mucho más legible que la común, al menos a lo que combinarla con HTML se refiere.

Respecto a la programación de scripts enteramente escritos en php si que he encontrado que para estudiantes o personas nuevas en el mundillo ver un endif; es mucho más entendible que una simple llave. Sobretodo si anidamos una y otra vez estas estructuras de control.

Scripts en php con la representación alternativa son más fáciles de entender por programadores noveles o estudiantes.

Comparación if y else

Comparando ambas representaciones encontramos pocas diferencias respecto a lo que ya he mostrado, por otra parte si que me gustaría dejar un ejemplo extra para mayor claridad.

Script php para obtener el mayor de 3 números con if y else común:

<?php
if ( $a > $b ) {
    if ( $a > $c ) {
       echo 'El mayor es a';
    } else {
       echo 'El mayor es c';
    }
} else {
    if ( $b > $c ) {
       echo 'El mayor es b';
    } else {
       echo 'El mayor es c';
    }
}
?>

Script php equivalente con if y else alternativos:

<?php
if ( $a > $b ):
    if ( $a > $c ):
       echo 'El mayor es a';
    else:
       echo 'El mayor es c';
    endif;
else:
    if ( $b > $c ):
       echo 'El mayor es b';
    else:
       echo 'El mayor es c';
    endif;
endif;
?>

Extra: Datos a tener en cuenta de IF y ELSE alternativo

Resumiendo, el uso de if y endif es más atractivo por las siguientes razones:

  • Tanto si queremos contemplar una línea o varias dentro de la condición del if siempre utilizaremos la misma representación.
  • Al combinar PHP y HTML resulta más legible y mucho más fácil de identificar.
  • Buscar en una plantilla el cierre de un if será realmente fácil gracias a endif;
  • Evita problemas de confusión para programadores noveles (y no tan noveles) cuando anidamos distintas estructuras de control. Por ejemplo un número grande de IF, WHILE, FOR, etc.
  • Representaciones de una línea como if($a < $b): echo 'Hola'; endif; se vuelven más sencillas.

Extra: Otras estructuras alternativas

Como dato adicional decir que existen otras estructuras de control con una representación alternativa muy similar al de este IF y ELSE. Entre ellas se encuentran SWITCH, WHILE, FOR, etc.

Representación alternativa SWITCH

<?php
switch ( $a ):
   case 1:
        echo 'a es 1';
        break;
endswitch;
<?php

Importante no imprimir ningún espacio en blanco entre la sentencia switch y el primer case.

Representación alternativa WHILE

<?php
$a = 1;
while ( $a < 5 ):
   $a++;
endwhile;

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.