#!/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.. whiley la instruccióngotocon la que también se pueden implementar bucles - PHP ofrece la instrucción
foreachpara recorrer iterables como arrays o hash maps - PHP ofrece las palabras clave
breakycontinuepara controlar el flujo de los bucles
■
