Imprimir

Manual de PHP: Estructuras de control

Estructuras de control

Las estructuras de control permiten ejecutar bloques de código dependiendo de unas condiciones (en PHP el 0 es FALSE y cualquier otro número es TRUE).

Recursos

  • if...else

    La estructura if...else permite ejecutar un bloque de instrucciones si la condición es TRUE y otro bloque de instrucciones si es FALSE. Las estructuras if...else se pueden anidar. La sintaxis es:

    <?php
    if (condicion) {
        // este bloque se ejecuta si condicion es TRUE
    } else {
        // este boque se ejecuta si condicion es FALSE
    }
    ?>

    Ejemplo:

    <?php
    $a = 10;
    $b = 5;
    if ($a > $b) {
        echo $a." es mayor que ".$b;
    } else {
        echo $a." no es mayor que ".$b;
    }
    // mostrara "10 es mayor que 5"
    ?>
  • if...elseif...else

    La estructura if...elseif...else permite ejecutar varias condiciones if en cascada. La sintaxis es:

    <?php
    if (condicion1) {
        // este bloque se ejecuta si condicion1 es TRUE
    } elseif (condicion2) {
        // este boque se ejecuta si condicion1 es FALSE y condicion2 TRUE
    } else {
        // este boque se ejecuta si condicion1 y condicion2 son FALSE
    }
    ?>

    Ejemplo:

    <?php
    $nombre = "ana";
    if ($nombre == ""){
        echo "tu no tienes nombre";
    } elseif ($nombre == "eva") {
        echo "tu nombre es eva";
    } else {
        echo "tu nombre es ".$nombre;
    }
    // mostrara "tu nombre es ana"
    ?>

    Veamos por ejemplo un rotador de anunciantes:

    <?php
    // rotador de anunciantes porcentajes 20, 60, 20
     
    // generar un numero aleatorio entre 0 y 100 (inclusive)
    $random = rand(0,100);
     
    // seleccionar el anunciante segun el porcentaje deseado
    if (($random >= 0) AND ($random <= 20)) {
    ?>
     
        <!-- codigo HTML del anunciante 1 -->
     
    <?php
    } elseif (($random > 20) AND ($random <= 80)) {
    ?>
     
        <!-- codigo HTML del anunciante 2 -->
     
    <?php
    } else {
    ?>
     
        <!-- codigo HTML del anunciante 3 -->
     
    <?php
    }
    ?>
  • while

    La estructura while ejecuta un bloque de código mientras se cumpla una condición. El valor de la condición es comprobado cada vez al principio del bucle, de manera que PHP ejecutará el código repetidamente mientras la condición se evalúe como TRUE. Si la condición se evalúa como FALSE la primera vez el código no se ejecutará ni una sola vez. Podemos romper un ciclo while con la sentencia break. La sintaxis es:

    <?php
    while (condicion) {
        // este boque se ejecuta mientras condicion sea TRUE
    }
    ?>

    Ejemplo:

    <?php
    $num = 1;
    while ($num < 5) {
        echo $num."<br />";
        if ($num == 3){
            echo "aqui nos salimos, hemos llegado a ".$num;
            break;
        }
        $num++;
    }
    // mostrara numeros del 1 al 3 inclusive
    ?>
  • do...while

    Esta estructura es similar a while, salvo que con do...while primero se ejecuta el bloque de código y después se evalúa la condición, por lo que el código siempre se ejecuta al menos una vez.

    <?php
    $num = 1;
    do {
        echo $num."<br />";
        if ($num == 3){
            echo "aqui nos salimos, hemos llegado a ".$num;
            break;
        }
        $num++;
    }
    while ($num < 5);
    // mostrara numeros del 1 al 3 inclusive
    ?>
  • switch...case...default

    Una alternativa a if...elseif...else es la estructura switch, la cuál evalúa y compara la variable de la condición con el valor de case: si encuentra una condición TRUE ejecuta ese bloque de código, al final del cual debemos colocar un break para que no siga buscando. Si llega al final de la lista case y no ha encontrado una condición TRUE ejecuta el código que haya en default. La sintaxis es:

    <?php
    switch ($variable) {
        case "valor1":
            // este boque se ejecuta si $variable == valor1
            break;
        case "valor2":
            // este boque se ejecuta si $variable == valor2
            break;
        default:
            // este boque se ejecuta si $variable != valor1 y valor2
    }
    ?>

    Ejemplo:

    <?php
    $usuario = "pepe";
    switch ($usuario) {
        case "juan":
            echo "el usuario es juan";
            break;
        case "luis":
            echo "el usuario es luis";
            break;
        case "miguel":
            echo "el usuario es miguel";
            break;
        default:
            echo "usted no es un usuario valido";
    }
    // mostrara "usted no es un usuario valido"
    ?>

    Si necesitamos un case OR haremos "falling through" prescindiendo de la sentencia break:

    <?php
    $usuario = "pepe";
    switch ($usuario) {
        case "juan":
        case "luis":
        case "pepe":
            echo "el usuario es juan, luis o pepe";
            break;
        case "miguel":
            echo "el usuario es miguel";
            break;
        default:
            echo "usted no es un usuario valido";
    }
    // mostrara "el usuario es juan, luis o pepe"
    ?>
  • for

    La estructura for se utiliza para ejecutar un bloque de código con la condición de que una variable se encuentre entre un valor mínimo y otro máximo. La expresión expr1 se evalúa una vez al principio del bucle. Al comienzo de cada iteración se evalúa expr2: si es TRUE el bucle continúa y el código se ejecuta. Si es FALSE la ejecución del bucle finaliza. Al final de cada iteración se ejecuta expr3. El bucle se puede romper con break. La sintaxis es:

    <?php
    for (expr1; expr2; expr3) {
        // este boque se ejecuta si valor_min < $variable < valor_max
    }
    ?>

    Ejemplo:

    <?php
    for ($i = 1; $i <= 5; $i++){
        echo $i."<br />";
        if ($i == 3){
            echo "aqui nos salimos, hemos llegado a: ".$i;
            break;
        }
    }
    // mostrara numeros del 1 al 3 inclusive
    ?>
  • foreach

    La estructura foreach permite iterar sobre matrices y recorrer sus elementos. Cuando foreach comienza su ejecución el puntero interno se reinicia al primer elemento de la matriz. En cada iteración el valor del elemento actual se asigna a $value, la clave a $key y el puntero avanza una unidad. La sintaxis es:

    <?php
    foreach($array as $key => $value) {
        // este boque se ejecuta para cada elemento del array
    }
    ?>

    Por ejemplo, para recorrer los elementos de una matriz de índice numérico haremos:

    <?php
    $arr = array("one", "two", "three");
    foreach($arr as $index => $value ) {
        echo '$a['.$index."] =  ".$value."<br />";
    }
    // mostrara "$a[0] = one $a[1] = two $a[2] = three"
    ?>

2 Comentarios en “Manual de PHP: Estructuras de control”

  • Luis dice:

    Hola una pregunta, se puede separar un while en bloques por ejemplo

    no me funciona, alguna ayuda?

  • Luis dice:

    no se escribio el codigo php que puse, pero la pregunta era si se puede separar un while en bloques php distitos como tu ejemplo del if

Deja un comentario