informaticaPC

Tutorial de PHP

Sentencias de control condicionales

Estructuras o sentencias de control

Como todo lenguaje de programación, PHP permite el uso de sentencias de control para controlar el flujo del programa.

Pueden ser condicionales o selectivas (usadas para determinar si se debe procesar cierta parte del código fuente) o repetitivas o iterativas (las usaremos cuando necesitamos que una parte del código fuente sea repetido varias veces).

Más información

Relacionado: [ Sentencias de control ]

Sentencias de control Condicionales o Selectivas

Crearemos una sentencia condicional simple en PHP usando if(), del siguiente modo:

<?php
    $x = 33;

    if( $x == 33 )
    {
        $x = 55;
    }

    // Se mostraría "Ahora el valor de 'x' es [55]":
    echo "Ahora el valor de 'x' es [$x]";
?>

Descargar ejemplo

También podemos crear sentencias condicionales dobles tal y como mostramos en el siguiente ejemplo, en el cual, en caso de que el valor de la variable '$x' sea mayor o igual de 100 o bien menor de dicho número, se mostrará el mensaje adecuado en cada caso.

<?php
    $x = 80;

    if( $x >= 100 )
    {
        echo "Mayor o igual de 100";
    }
    else
    {
        echo "Menor de 100";
    }
?>

Descargar ejemplo

No será necesario poner las llaves si cuando se cumple una condición sólo se procesará una instrucción:

<?php
    $x = 80;

    if( $x >= 100 )
        echo "Mayor o igual de 100";
    else
        echo "Menor de 100";
?>

También es posible usar la sentencia if() para crear una sentencia condicional múltiple, tal y como puedes ver en el siguiente ejemplo en el que usamos else if (también se puede escribir elseif) para establecer otra condición:

<?php
    $x = -80;

    if( $x >= 100 ) {
        echo "El valor es igual o mayor de 100";
    }
    else if( x >= 0 ) {
        echo "El valor está entre 0 y 99";
    }
    else {
        echo "El valor es negativo";
    }
?>

Descargar ejemplo

EXPLICACIÓN: si el valor de la variable '$x' es igual o mayor de 100 se mostrará el primer mensaje, si está entre cero y 99 el segundo, y si el valor es negativo (como es el caso) se mostrará el tercer mensaje.

Además de if() podemos usar la sentencia condicional switch() cuando debamos controlar entre varias posible condiciones:

<?php
    $dia = 3;

    switch( $dia )
    {
        case 1:
            echo "Lunes";
            break;
        case 2:
            echo "Martes";
            break;
        case 3:
            echo "Miércoles";
            break;
        case 4:
            echo "Jueves";
            break;
        case 5:
            echo "Viernes";
            break;
        case 6:
            echo "Sábado";
            break;
        case 7:
            echo "Domingo";
            break;
        default:
            echo "Valor no válido";
    }
?>

Descargar ejemplo

También podemos escribir la sentencia del siguiente modo:

<?php
    $dia = "MIERCOLES";

    switch( $dia )
    {
        case "LUNES":
            echo 1;
            break;
        case "MARTES":
            echo 2;
            break;
        case "MIERCOLES":
            echo 3;
            break;
        case "JUEVES":
            echo 4;
            break;
        case "VIERNES":
            echo 5;
            break;
        case "SABADO":
            echo 6;
            break;
        case "DOMINGO":
            echo 7;
            break;
        default:
            echo "Día no válido";
    }
?>

Descargar ejemplo

Entre los paréntesis de switch() debemos poner la variable cuyo valor deseamos comparar, en los case los valores con los que deseamos compararla, y dentro de cada uno de ellos el código que se debe procesar.

No olvides escribir break al final de cada case porque de lo contrario, tras encontrarse una coincidencia y procesar el código fuente correspondiente, se continuarán evaluando el resto de opciones.

Si ninguno de los valores indicados en los case se corresponde con el de la variable, se ejecutará el código PHP dentro de default (si lo ponemos al final del switch() no es necesario usar break).

Otra forma de escribir una sentencia condicional múltiple usando switch(), sería:

<?php
    $dia = 7;

    switch( $dia )
    {
        case 1: case 2: case 3: case 4: case 5:
            echo "Entre semana";
            break;
        case 6: case 7:
            echo "Fin de semana";
            break;
        default:
            echo "Valor no válido";
    }
?>

Descargar ejemplo

EXPLICACIÓN: en caso de que la variable '$dia' tenga un valor de entre 1 y 5 se mostaría 'Entre semana', si tiene un valor de 6 ó 7 se mostraría 'Fin de semana', y en cualquier otro caso devolvería 'Valor no válido'.

Puedes poner todos los case en la misma línea (como en el ejemplo anterior), o bien cada uno de ellos debajo del anterior:

<?php
    $dia = 7;

    switch( $dia )
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            echo "Entre semana";
            break;
        case 6:
        case 7:
            echo "Fin de semana";
            break;
        default:
            echo "Valor no válido";
    }
?>

Descargar ejemplo

Por último, si necesitáramos evaluar una expresión en cada case deberíamos proceder según te mostramos en el siguiente ejemplo:

<?php
    $dia = 5;

    switch( true )
    {
        case ($dia >= 1 && $dia <= 5) :
            echo "Entre semana";
            break;
        case ($dia == 6 || $dia == 7) :
            echo "Fin de semana";
            break;
        default:
            echo "Valor no válido";
    }
?>

Descargar ejemplo

Observa que entre los paréntesis del switch() en lugar de poner la variable cuyo valor deseamos comparar hemos puesto el valor lógico 'true' para que se procese la sentencia, y en cada case la expresión a evaluar< deseada.

Para realizar comparaciones condicionales, aparte de las sentencias de control explicadas en este apartado podemos también usar el operador ternario explicado anteriormente.

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso