Manual de PHP: Bucles

De Foros del Web

Contenido

¿Qué son los Bucles?

También llamados loops en inglés, nos permiten realizar tareas repetitivas durante un número específico de veces o mientras una condición se cumpla.

Tipos de bucles

while

Ejecuta un bloque de código mientras una condición específica sea verdadera, por ello la verificación de dicha condición se hace desde un principio.

$i = 1;
 
while($i <= 5) {
  echo 'Número ' . $i . '<br>';
  ++$i; // Esta instrucción hace que el valor de $i se incremente en 1
}

En el ejemplo, primero definimos una variable $i asignándole el valor de 1, luego iniciamos el bucle diciendo que mientras $i contenga un valor menor o igual a 5 que ejecute lo que está entre llaves {}, osea desplegar un mensaje que diga Número más el valor de $i, y luego que le sume una unidad, lo que nos daría como resultado:

Número 1
Número 2
Número 3
Número 4
Número 5

Cuando $i toma el valor de 6, la condición deja de cumplirse (es falso que 6 es menor o igual a 5). Por lo tanto, el bucle termina y se continúa con la ejecución de las instrucciones después del ciclo.

do … while

La diferencia con el anterior es que éste siempre va a ejecutar el código la primera vez, y luego recién hará la comprobación de la condición para determinar si continúa un nuevo ciclo o termina.

$i = 1;
do {
  ++$i;
  echo 'Número ' , $i , '<br />';
} while ($i <= 5);

Resultado:

Número 2
Número 3
Número 4
Número 5
Número 6

Explicación: como en un inicio colocamos el $i++ (le sumamos uno al valor de $i); el primer valor que muestra es Número 2 pero también pudimos haber colocado eso luego del echo para que mostrara del 1 al 5.

for

Su sintaxis es bastante corta y dentro de la misma línea se especifica la inicialización de la variable (que se ejecuta solo una vez), la condición a evaluar, y una operación a realizar. Estos "parámetros" deben escribirse en esa secuencia y separados por punto y coma (;) uno de otro, pues constituyen cada uno instrucciones totalmente diferentes. En el siguiente ejempo entenderás mejor este concepto:

for($i=0; $i<=100; ++$i) {
   echo 'Número ' . $i . '<br>';
}

En este ejemplo el for le asigna un valor de 0 a $i (primera instrucción) y condiciona que, luego de incrementar en uno el valor de $i (tercera instrucción), se inicie un nuevo ciclo sí y sólo sí $i tiene un valor menor o igual a 100 (segunda instrucción).

Para entender esto es importante que sepas el papel de cada una de estas instrucciones

  • La primera instrucción es ejecutada sólo una vez, al iniciar el ciclo for. Por eso se usa generalmente para asignar un valor a nuestra variable guía o bandera, que en este caso es $i.
  • La segunda instrucción se ejecuta siempre al iniciar un nuevo ciclo (No en el primer ciclo). Esta es evaluada para, según el valor booleano que devuelva, determinar si debe iniciarse un ciclo nuevo o si el bucle debe terminar. Por lo tanto, casi siempre se hace una comparación entre el valor de $i (la variable guía) y un valor estándar.
  • La tercera instrucción ejecuta una tarea adicional siempre al finalizar cada ciclo. Se le usa generalmente para modificar el valor de la variable guía, como por ejemplo, incrementar su valor.

Ahora, sabiendo esto, vuelve a revisar el ejemplo anterior para que te des cuenta del proceso que se sigue al realizar este bucle.

foreach

Se utiliza para recorrer arreglos (arrays), que como vimos son conjuntos de información dentro de una variable. El ciclo foreach toma uno de los valores del array (con o sin su índice) y lo asigna a otras variables 'temporales' que especificamos, luego ejecuta un código, y al finalizar se mueve al siguiente elemento del array. Por lo tanto, vuelve a ejecutar el código tantas veces como valores tenga el arreglo.

<?php
$hermanos = array('Juan', 'Lucas', 'Carlos', 'Adolfo', 'Roberto');
foreach ($hermanos as $nombre) {
  echo $nombre . '<br />';
}

Explicación: En la primera línea asignamos a una variable $hermanos un conjunto de datos organizados en un arreglo, usando array() y separando cada dato con comas. Luego, con el foreach lo que hace es crear un ciclo en base a los datos contenidos en nuestra variable, asignando en cada ciclo uno de los valores a la nueva variable $nombre.

El foreach hace un recorrido desde el primer valor de $hermanos que en este caso sería Juan, le pasa ese valor a $nombre y entonces imprime la variable usando echo, luego vuelve a ejecutar el ciclo, pero ahora $nombre tiene el segundo valor de nuestro arreglo, que sería Lucas, y así sucesivamente hasta terminar con todos los elementos del arreglo.

Resultado:

Juan
Lucas
Carlos
Adolfo
Roberto

Una extensión de este tipo de ciclo es que además puedes hacer el mismo proceso asigando también a otra variable el índice correspondiente a cada valor del arreglo. Miremos el siguiente ejemplo

$frutas = array(
    'a' => 'Plátano',
    'b' => 'Piña',
    'c' => 'Manzana',
    'd' => 'Fresa',
    'e' => 'Naranja'
);
 
foreach($frutas as $letra => $fruta) {
    echo "La fruta '$letra' es '$fruta' <br>";
}

El proceso es el mismo, sólo que ésta vez en la línea del foreach agregamos una variable adicional $letra que en cada ciclo tomará como valor el índice correspondiente a los valores respectivos, asignados a $fruta. La sintaxis básica de foreach, en resumen, es

foreach($arreglo as $variable_indice => $variable_valor) {
    El código
}

Con el ejemplo anterior obtendríamos:

La fruta 'a' es 'Plátano'
La fruta 'b' es 'Piña'
La fruta 'c' es 'Manzana'
La fruta 'd' es 'Fresa'
La fruta 'e' es 'Naranja'

Este artículo es parte del Manual de PHP.





Herramientas personales