Bucles en PHP
SOLUCIONARIO
Bucles en PHP
2025-06-29
Por
Occam's Razor

#!/usr/bin/php -f
<?php

$a = array();
for ($i = 0; $i < 10; $i++) $a[$i] = $i +10;
$i = 0;

while ($i < 10) {
    print "$i -> $a[$i] \n";
    $i++;
}
print "--------------------------\n";

do
{
    $i--;
    print "$i -> $a[$i] \n";
    if ($i > 4)
    {
        print "\n";
        continue;
    }
    print " **\n";
    if ($i == 1) break;
    
    
} while ($i > 0);

print "--------------------------\n";
for ($i = 0; $i < 10; printf ("%d ", $a[$i++]));
print ("\n");
print "--------------------------\n";
foreach ($a as $i) print "$i ";
echo "\n";
?>

PHP nos ofrece el paquete clásico de bucles: for, while, do .. while y foreach. Como es usual, los bucles for son una versión compacta de los bucles while y los bucles do.. while son útiles cuando el código dentro del bucle debe ser ejecutado al menos una vez.

SABÍAS QUE?

Además de índices enteros podemos utilizar caracteres en nuestros bucles. El siguiente código:

for ($letras = 'R'; $letras != 'AD'; $letras++) {
  echo $letras.' ';
}

Producirá la siguiente salida:

R S T U V W X Y Z AA AB AC

Al igual que otros lenguajes que también ofrecen el operador ,, php nos permite agrupar varias instrucciones en cada una de las expresiones de los bucles for como muestra el siguiente ejemplo:

for ($i = 0, $i = 0; $i < 10; $j += $i, print $i, $i++);

foreach es la única instrucción un poco diferente ya que primero se indica el array y luego la variable en la que recogeremos el valor. foreach tiene una forma alternativa con la que obtener los pares clave y valor, lo cual es especialmente útil para iterar tablas hash, si bien se puede utilizar también con arrays. En ese caso, el valor de la clave es el índice en el array.

$a = array( "campo1" => "valor1", "campo2" => 2);
foreach ($a as $clave => $valor) {
  echo $clave . " -> " . $valor . "\n";
}

PHP ofrece la instrucción goto que también se puede utilizar para generar bucles como ya sabemos, si bien su uso es normalmente desaconsejable puesto que tiende a producir código más difícil de leer:

SABÍAS QUE?

No podemos utilizar goto para saltar en el medio de un bucle, pero podemos usarlo para saltar dentro de un caso de un switch.

switch ($a) {
    case 0:
        echo "Zero";
        goto def;
    case 5:
        echo "Cinco"
        break;
    default:
        def:
        echo "No cinco";
    }

PHP ofrece las instrucciones break y continue con las que terminar el bucle prematuramente o movernos a la siguiente iteración.

Podemos escribir bucles infinitos utilizando las siguientes expresiones:

for (;;) {
    /* Repetir para siempre */
}

while (true) {
    /* Repetir para siempre */
}

do {
    /* Repetir para siempre */
} while (true);

infinito:
    /* Repetir para siempre */

goto infinito;

Recordad que en php el valor entero 0, el decimal 0.0, las cadenas "" (cadena vacía) y "0", los arrays sin elementos y el valor NULL se convierten en false al convertirlos en bool, por ejemplo cuando los utilizamos en una expresión condicional: while (false) y while (0) son equivalentes. Cualquier otro valor, incluyendo el valor -1 se convierte en true.

Resumen

  • PHP ofrece bucles for, while, do.. while y la instrucción goto con la que también se pueden implementar bucles
  • PHP ofrece la instrucción foreach para recorrer iterables como arrays o hash maps
  • PHP ofrece las palabras clave break y continue para controlar el flujo de los bucles

SOBRE Occam's Razor
Somos una revista libre que intenta explicar de forma sencilla conceptos tecnológicos y científicos de los que no podemos escapar. Al final, todo es más fácil de lo que parece!

 
Tu publicidad aquí :)