Lección 5: Condicionales | Curso PHP 8.x

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 en valor if ('3' == 3)
=== es igual en valor y tipo if ('3' === '3')
!= no es igual if ('Doctor' != 'Who')
!== no es igual en valor o tipo if ('Doctor' !== 'Who')
>= es mayor o igual que if (10 >= 10)
<= es menor o igual que if (10 <= 20)
<=> -1, 0 y 1 dependiendo de los valores si son superados (10 <=> 20) // 1
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>

o con un elseif.

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

Forma abreviada (Operador ternario)

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

Switch

La funcionalidad de switch es prácticamente igual a if salvo que es más limitada, solo admite la condicional de 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

Strings

Antes de cerrar la lección quiero dejarte algunas funciones que te pueden ser de ayuda cuando trabajas con String. Profundizaremos en las siguientes lecciones.

str_contains (¿Contiene este texto este otro texto?)

if (str_contains('La duda es uno de los nombres de la inteligencia', 'duda')) {
    // Entra
}

str_starts_with (¿Empieza este texto con este otro texto?)

if (str_starts_with('La duda es uno de los nombres de la inteligencia', 'La duda es')) {
    // Entra
}

str_end_with (¿Termina este texto con este otro texto?)

if (str_end_with('La duda es uno de los nombres de la inteligencia', 'inteligencia')) {
    // Entra
}

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

Comprame un café
Pulsa sobre la imagen

No te sientas obligado a realizar una donación, pero cada aportación mantiene el sitio en activo logrando que continúe existiendo y sea accesible para otras personas. Además me motiva a crear nuevo contenido.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario