Necesitas un desarrollador para tu proyecto? Envíame un mensaje

Curso programación en PHP: Bucles

Los bucles o loops son bloques que nos permiten ejecutar determinadas instrucciones en forma repetitiva, lo que se conoce como iteración.

Imagina que quieres incluir un calendario en tu aplicación y para ello imprimes los días del mes en curso:

echo 1;
echo 2;
echo 3;
// así sucesivamente hasta el último día

...no es difícil ver lo ineficiente de hacerlo uno por uno, y en el ejemplo solo intentamos manejar una cantidad pequeña de elementos, en la vida real no es raro encontrarse con casos donde debamos realizar miles de iteraciones. Para esto es que existen los bucles.

En PHP existen 3 tipos de bucles principales: while, for y foreach.

For

El bucle for se declara con 3 expresiones separadas por punto y coma:

for(e1;e2;e3) {
    // código a ejecutar
}

  • La primera expresión se evalúa una única vez al principio del bucle.
  • La segunda expresión se evalúa antes de cada iteración y si es TRUE se procede a la misma, es decir se ejecuta el código entre llaves, de ser FALSE se termina la ejecución del bucle y el programa continúa su flujo con el código restante.
  • La tercera y última expresión se evalúa luego de cada iteración.

Ahora que ya conocemos la teoría vamos a ver como podemos utilizar un bucle for para simplificar enormemente el ejemplo del calendario:

for($i = 1;$i <= 31;$i++) {
    echo $i . "\n";
}

Lo que hicimos es inicializar la variable $i con valor 1, indicar que el bucle se debe ejecutar siempre que $i sea igual o menor que 31, y por último incrementar $i en 1 al final de cada iteración.
Luego dentro del bucle simplemente imprimimos el valor de $i al cual le concatenamos el caracter de nueva linea "\n" para una mejor visualización.
Nota: Por convención se utiliza $i como referencia a "iterador", pero puedes utilizar el nombre que desees.

While

Como el nombre lo indica (while en español significa "mientras") el bucle se ejecutará siempre que se de la condición especificada.
Si bien for es el tipo de bucle que normalmente utilizaríamos para trabajar el caso del calendario nada nos impide hacerlo con while:

$i = 1
while($i <= 31) {
    echo $i++ . "\n";
}

Foreach

Foreach encaja mejor en un caso donde busquemos trabajar sobre un conjunto de elementos, sin que debamos especificar una condición ni una cantidad determinada de iteraciones.
Básicamente foreach está pensado para iterar sobre arreglos.

$colors  = array("rojo", "verde", "amarillo", "azul", "negro", "blanco");
foreach($colors AS $color) {
    echo $color . "\n";
}

En cada iteración el puntero interno del array avanza al siguiente elemento, de este modo podemos operar sobre cada uno de ellos referenciando la expresión asignada en la declaración del bucle, en este caso $color.