15, octubre - 2018

Estructuras de repetición (bucles) en PHP

Estructuras de repetición (bucles) en PHP

Al igual que las estructuras condicionales están presentes en la totalidad de lenguajes de programación, las de repetición o bucles también lo están, PHP cuenta con con 4 formas de creación de bucles principales que veremos en esta página.
Pero antes tenemos que indicar que, un bucle de programación se trata de un determinado fragmento de código fuente que se ejecuta repetidas veces (x veces) dependiendo de la instrucción que hayamos declarado, estas repeticiones nos son de gran utilidad para la generación de largas cadenas de códigos o interacciones, como por ejemplo las que necesitaríamos en el caso de tener que imprimir una tabla de multiplicar o una lista de filas de una tabla.

Vamos a ver de qué forma podemos declarar estos bucles en PHP, comencemos.

Bucles while

Muy similar a la sentencia if, el bucle while ejecuta un determinado bloque de código mientras la condición sea true, por ejemplo, mientras un número sea menor a otro impuesto, se trata del bucle más sencillo de utilizar en PHP y podemos ver su uso a continuación:


while ( expresión )
  iteracción
$i = 1;
while($i <= 10) {
 echo 5*$i."<br />\n";
 ++$i;
}

Con esa sencilla instrucción estaremos mostrando la tabla de multiplicar del 5, cabe mencionar que while se utiliza mayormente cuando no sabemos con exactitud el número de veces que la instrucción ha de repetirse, en caso de conocer este dato será mucho más efectivo usar los bucles de programación for que veremos a continuación.

Bucles do / while

Similar al bucle while, el bucle do/while se usará de la misma forma con la particularidad de que la comprobación estará al final del bucle, de esa forma, nos aseguramos de que por lo menos una vez pasará la línea de comandos o bloque de programación concatenado. La forma de expresión del bucle do / while es la siguiente:


do 
  interación
while ( expresión )

Vemos su uso y la diferencia con el while simple:

$i = 0;
while($i <= 1) {
  echo "Esta instrucción no se ejecuta ya que i nuca es mayor que 1";
}
do {
  echo "Esta instrucción se ejecuta una vez aunque i nunca sea mayor que 1";
}while($i <= 1);
$b = 1;
$i = 1;
do {
  echo 5*$i."<br />\n";
  ++$i;
}while($i <= 10);

Como vemos los dos bucles producen el mismo efecto.

Bucles for

Los bucles de PHP for y foreach son los más potentes y recomendados para que nuestras aplicaciones sean robustas, sobre todo, en los casos en que conozcamos por adelantado el número de veces que se ha de repetir la interación (x veces), la estructura básica de los contadores for es la siguiente


for ( expresión, condición, expresión )
  iteracción

Y siguiendo con ejemplo (tabla del 5) podríamos declarar nuestra sentencia de la siguiente manera

$i = 1;
for($i = 1; $i <= 10; ++$i) {
 echo 5*$i."<br />\n";
}

Analizando el código vemos que entre los paréntesis escritos a continuación de la sentencia for, tenemos tres expresiones separadas por el operador punto y coma, en cada una de ellas estamos expresando:

  • La expresión 1º ($i = 1) está estableciendo el valor inicial de la declaración o del contador, en este caso decimos que empiece por uno.
  • La expresión 2º ($i <= 10) está estableciendo la condición mientras se ha de ejecutar el bucle, en este caso mientras $i sea mejor o igual a 10
  • La expresión 3º ($i++) está estableciendo la interacción que ha de tener el bucle, este parámetro o expresión se ejecuta cada vez que pasa un contador del bucle (cada vez que éste es ejecutado) y por lo general suele incrementar o decrementar uno, aunque podríamos haber marcado el valor que hubiésemos querido, por ejemplo $i+2 indicando que $i valga dos más cada paso del bucle.
  • La expresión 4º (echo 5*$i.”&lt;br /&gt;\n”;) es la declaración final que indica lo que hará el bucle en cada uno de los pasos, en este caso, imprimir en pantalla el valor de multiplicar 5 por cada valor de $i que recordemos va del 1 al 10 (la tabla del 5)

Nota: en el interior de un bucle podemos programar otro, aumenta la complejidad pero en ocasiones es la manera de llegar a imprimir o ejecutar determinados bloques de código como vamos a ver en el siguiente ejemplo.

 

Bucles foreach

Los bucles foreach están diseñados únicamente para acceder de forma sencilla al interior de una variable matriz o array. Su uso difiere un tanto del bucle for como vemos a continuación, la expresión correcta de declaración es ésta:


foreach ( expresión as valor => indice)
  índice = valor

Y un ejemplo de uso sería el siguiente:

$i = array("peras", "manzanas", "uvas", "melocotones", 4654, "fresas", 98, "naranjas", "kiwis");
foreach($i as $val => $index) {
echo "Índice: " . $val . " - Valor: " . $index . "<br />\n";
}
// Nos da como resultado
/**
Índice: 0 - Valor: peras
Índice: 1 - Valor: manzanas
Índice: 2 - Valor: uvas
Índice: 3 - Valor: melocotones
Índice: 4 - Valor: 4654
Índice: 5 - Valor: fresas
Índice: 6 - Valor: 98
Índice: 7 - Valor: naranjas
Índice: 8 - Valor: kiwis
*/

Si nos fijamos, con el operador as indicamos que queremos obtener el valor del array en cada paso del bucle, y además (esto es opcional) le podemos indicar que deseamos ver también el índice que ocupa en el array con el operador => como hemos indicado.

Con este bucle podemos recibir o interpretar arrays multidimensionales como vemos a continuación:

$i = array(
"Frutas" => array (
"uvas" => 5,
"peras" => 2,
"manzanas" => 4
),
"Verduras" => array(
"tomates" => 10
)
);
foreach($i as $val => $index) {
echo $val . ": ";
foreach($index as $val2 => $index2) {
echo $val2 . " ".$index2 . " / ";
}
echo "
";
}
// Nos da como resultado
/**
Frutas: uvas 5 / peras 2 / manzanas 4 /
Verduras: tomates 10 /
*/

De esta forma, podemos declarar tantas sentencias foreach como alturas contenga nuestro array multidimensional, lo veremos con más detalle en la página dedicada a los arrays.

Por último, debemos de conocer dos declaraciones muy útiles cuando trabajamos con bucles, estas son break y continue.

Sentencia break

La utilizamos cuando deseamos detener por completo un bucle y dejar que la línea de comandos continúe justo a continuación del bucle, sin dejar que se ejecute ninguna interacción más del mismo

Sentencia continue

La utilizamos igual que break con la particularidad de que el script no continuará ejecutándose en la línea de comandos posterior al bucle, éste lo hará todavía en el interior del bucle saltando a la siguiente interacción del mismo.

Sentencia exit

La utilizaremos para dejar que se siga ejecutando la línea de comandos o script que hayamos declarado, normalmente cuando se realice una determinada acción que lo detenga.

Con esto podemos dar por concluido el capítulo o página dedicada a los

¿Te ha parecido interesante este contenido..?
En ese caso, te pedimos por favor que nos des tu valoración graicas a esto podemos mejorar nuestras lecciones. Gracias.
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

Social Media

  • YouTube

    Suscríbete a nuestro canal de YouTube para ver todos nuestros vídeos sobre programación

  • Twitter

    Síguenos en Twitter e infórmanos de ello, es muy probable que también te sigamos

  • Facebook

    Estamos pensando si abrir una página de Facebook o no...

  • LinkedIn

    En breve...

  • Instagram

    En breve...

  • Github

    En breve...

A %d blogueros les gusta esto: