Lección 5: Condicionales

Los condicionales son una herramienta esencial en cualquier lenguaje de programación. Sirve para ejecutar instrucciones dependiendo de unos condicionales.

if (condición) {
    ...
}

En el ejemplo puedes ver dentro del if que estoy realizando una pregunta: ¿Es 2 mayor que 0? Es cierto, por lo tanto se imprimirá el segundo echo.

echo "Inicio \n";
if (2 > 0) {
    echo "Entro en el condicional \n";
}
echo 'Fin';
// Inicio
// Entro en el condicional
// Fin

En el caso de no cumplirse nunca entrará: ¿2 es mayor que 1000? Es falso, por lo tanto nunca se ejecutará.

echo "Inicio \n";
if (2 > 1000) {
    echo "Entro en el condicional \n";
}
echo 'Fin';
// Inicio
// Fin

Tipos de condicionales

Las condicionales son símbolos aritméticos. Si la lógica es cierta, entrará. En caso contrario no se cumplirá y nunca llegará a ejecutarse el interior del if o while (ambos usan condicionales). Además podremos concadenar todas las condicionales que necesitemos. El uso de paréntesis está permitido.

Símbolo Explicación Ejemplo
> es mayor que if (1 > 0)
< es menor que if (1 < 0)
&& y if (1 > 0 && 67 > 0)
|| o if (1 > 10 || 67 > 0)
! no if (!(1 > 0))
== es igual if ('Doctor' == 'Doctor')
!= no es igual if ('Doctor' != 'Who')
>= es mayor o igual que if (10 >= 10)
<= es menor o igual que if (10 <= 20)
True Verdad if (True)
False Falso if (False)
if (10 > 2 && True && 'HBO' != 'Netflix') {
    echo 'Entro seguro';
}
// Entro seguro

4-1

else

Existe una herramienta que nos ayudará a que solo una serie de instrucciones se ejecuten.

if (condición) {
    ...
} else {
    ...
}

En caso de cumplirse la condición entrará en las primeras llaves ({}), en caso contrario entrará en las segundas llaves. Pero nunca en ambas.

if ('Ghibli' == 'Ghibli') {
    echo 'Bienvenido';
} else {
    echo 'No eres bien recibido'
}
// Bienvenido
if ('Estudio' == 'Ghibli') {
    echo 'Bienvenido';
} else {
    echo 'No eres bien recibido'
}
// No eres bien recibido

elseif

Es posible tener varios condicionales.

if (condición) {
    ...
} elseif (condición) {
    ...
}
if ('Michael Jackson' == 'Moonwalker') {
    echo 'Gran baile';
} elseif ('Moonwalker' == 'Moonwalker') {
    echo 'Legendario';
}
// Legendario

Si se cumple la primera, entrará e ignorará al segunda. Si no se cumple la primera pero la segunda sí, entrará en la segunda. Si no se cumple ninguna, no entrará en ninguna.

Al añadir un else al final le daremos un caso “por defecto”. Si no se cumpliera ninguna condicional iría automáticamente.

if (condición) {
    ...
} elseif (condición) {
    ...
} else {
    ...
}
if ('Michael Jackson' == 'Moonwalker') {
    echo 'Gran baile';
} elseif ('Michael Jackson' == 'Billie Jean') {
    echo 'Gran canción';
} else {
    echo 'Rey del Pop';
}
// Rey del Pop

Se admite tanto elseif como else if. Salvo como sintaxis alternativa, que debe estar junto: elseif:.

Sintaxis alternativa

Para facilitar la integración con HTML dispones de una sintaxis alternativa y un poco más agradable al ojo.

<html>
    <body>
    <?php if (condición): ?>
    // Código que sea cierto
    <?php else: ?>
    // Código que se ejecutará si no es cierto.
    <?php endif; ?>
    </body>
</html>

Forma abreviada (avanzada)

Es posible ejecutar en una sola instrucción con if con un else. Si estas empezando no te recomiendo usarla, pero no la olvides.

<?php (condicional) ? 'Valor si se cumple' : 'Valor si no se cumple'; ?>
<?php echo (5 > 10) ? 'Es verdad' : 'Es mentira'; ?>

4-2

4-3

Switch

La funcionalidad de switch es prácticamente igual a if salvo que es más limitada, solo admite la condicional igualación.

switch ($variable) {
    case 0:
        ...
        break;
    case 1:
        ...
        break;
    case 2:
        ...
        break;
    default:
        ...
        break;
}

Una equivalencia entre ambos.

$num = 1;
if ($num == 0) {
    echo "num es igual a 0";
} elseif ($num == 1) {
    echo "num es igual a 1";
} elseif ($num == 2) {
    echo "num es igual a 2";
} else {
    echo "No se a que es igual";
}
// num es igual a 1

switch ($num) {
    case 0:
        echo "num es igual a 0";
        break;
    case 1:
        echo "num es igual a 1";
        break;
    case 2:
        echo "num es igual a 2";
        break;
    default:
        echo "No se a que es igual";
        break;
}
// num es igual a 1