3.5 Aprender como funcionan bucles en php

¿Qué son los bucles en programación? ¿Para qué sirven los bucles? Entiende como funcionan con este tutorial completo de php sobre bucles.

Tag PHP bucles en php Estructuras de control php

En esta clase de la parte de estructuras de control que compone el curso php de la web, voy a tratar las estructuras de control iterativas (bucles).

Después de las estructuras de control condicionales, podríamos decir con seguridad, que los bucles o estructuras de control iterativas son el recurso más utilizado en el día a día de la programación. Los bucles, aunque básicos, requieren una fase de práctica y dominio para lograr comprender todas sus posibilidades. 

Estructuras iterativas de programación

  • Mientras un condicional nos permite indicar al intérprete php bajo que condición deberá ejecutar una o varías líneas de código, los bucles extienden esta funcionalidad e incluyen la repetición del código escrito entre las llaves.
  • Entonces podemos definir las estructuras de control iterativas, o bucles, como las estructuras de control que nos permiten repetir tantas veces como necesitemos las líneas de código incluidas entre sus llaves. Los bucles suelen ser utilizados para contar o recorrer información agrupada en variables de tipo especial para este fin (vectores, arrays o matrices). Además, gracias a los bucles, problemas repetitivos o con una incognita que varía en el tiempo son solucionables, problemas que de otra manera díficilmente prodríamos solventar.
  • La funcionalidad básica de un bucle (que es lo que hace) la marca el orden de ejecución de su contenido (las líneas de código entre llaves) y su sentencia de definición, es decir, su cabecera, donde suele figurar al menos siempre una condición a comprobar, condición que cuando deje de cumplirse rompa el bucle, terminando con su ejecución.

Características de los bucles en php

Las partes de un bucle, o al menos los puntos que deberemos tener claros cuando los utilizamos serán por regla general tres:

  • La inicialización de información necesaria para su uso en el bucle. Ejemplo: un contador que empieza a 0 y que incrementaremos después.
  • Una condición. Cuando sea verdadera las líneas de código en su interior (entre las llaves) se ejecutarán, cuando sea falsa el bucle finalizará.
  • Una actualización que controle el fin del bucle. Si la condición era cierta cuando el bucle se inició, en algún momento se deberá actualizar la información que controla la ejecución del bucle, de manera que este termine. Si nuestro bucle no tiene una condición de fin será infinito y bloqueará nuestro intérprete de código hasta que no pueda más (¡ya la hemos liado!).

Veamos las tres partes con un ejemplo básico, un bucle while:

 

 

<?php
$i = 0;
while ( $i < 10 ) {
   $i = $i + 1;
}
?>

Inicialización de información de bucles php

La inicialización de variables o inicialización se refiere a dar un valor a las variables que necesitaremos utilizar durante el desarrollo de la ejecución de las iteraciones del bucle. Por ejemplo, si queremos un bucle con diez iteraciones, necesitaremos una variable que haga la función de contador. Esta variable es algo así como el contar con los dedos de los señores bucles. Debemos decidir en que punto empieza este contador para más tarde poder modificarlo.

En el ejemplo utilizo la variable $i como contador, es decir, en cada repetición incrementaré el valor de la variable en uno. Si no hubiera dado un valor a la variable antes de la sentencia del bucle, es decir, si no la hubiera inicializado, la condición de ($i < 10) no podría haberse cumplido y el bucle nunca hubiera sido ejecutado. Además, incrementar una variable sin haberla inicializado es un claro error.

Aunque las variables que utilices pueden llamarse como tu quieras, la variable de ayuda utilizada como contador de iteraciones de los bucles suele llamarse "$i". Su denominación viene de la palabra inglesa "iteration".

La condición de los bucles en php

Los bucles guardan similitudes con las estructuras de control condicionalesnecesitan una condición que marque cuando se deberá ejecutar su código y cuando deberá parar. Las condiciones pueden ser múltiples y se pueden encadenar estratégicamente con AND (&&) u OR (||). Podemos acumular tantas condiciones como queramos y necesitemos. No hay restricciones al respecto, solamente deben evaluarse finalmente como un booleano (verdadero o falso).

La condición del bucle del ejemplo ($i < 10) logra tres cosas: que el bucle se inicie, que realice una serie de iteraciones, y que se detenga cuando deje de cumplirse la condición.

Al igual que en el ejemplo visto, la condición de un bucle junto a la actualización de las variables son quienes marcan cuantas repeticiones se realizarán. Si incrementamos la actualización, es decir, si esta fuera más rápida (por ejemplo de 2 en 2), el bucle finalizaría más rápido.

La actualización de los bucles php

Con la actualización de una estructura iterativa nos referimos al control del progreso del bucle, es decir, cambiar el valor de las variables que marcan el avance y fin del bucle.  

En el ejemplo, la actualización de la variable $i es de 1 en 1 ($i = $i + 1;), en total, se realizarán 10 iteraciones, desde el valor de $i 0 al 9, siendo el 10 el valor que evaluará a falso la condición y terminará con las iteraciones del bucle.

Orden de ejcución de las estructuras de control iterativas

El orden de ejecución de un bucle básico es:

  1. Se evalúa la condición del bucle para comprobar si es verdadera o falsa.
  2. Si la condición se cumple (true) se ejecutan las líneas de código entre llaves.
  3. El intérprete alcanza la última línea de código.
  4. El intérprete vuelve a la sentencia de definición del bucle y vuelve a comprobar la condición.
  5. Si la condición es verdadera una vez más, el código entre llaves se vuelve a ejecutar, en caso contrario el bucle termina y su código entre llaves no se ejecuta.
  6. El orden de ejecución se repite hasta que la condición deja de cumplirse.

Un ejemplo básico para visualizar el orden de ejecución de un bucle, en concreto un bucle while, sería:

<?php
$a = 1;
while ( $a < 5 ) {
   echo 'El número es :' . $a . ' <br>;
   $a = $a + 1;
}
echo 'El número final es :' . $a;
?>

Esta es una representación básica de uso de un bucle WHILE. Al igual que los condicionales, hace uso de una condición entre paréntesis y un bloque de sentencias entre llaves sobre las que aplica su efecto.

Este bucle WHILE de php realiza una acción tan básica como contar del 1 al 5. El bucle se repetirá mientras el número entero de la variable $a sea menor que 5. Cuando $a valga 5, como ya no será menor que 5, el bucle finalizará. El resultado mostrado por la ejecución del fichero será:

El número es 1
El número es 2
El número es 3
El número es 4
El número es 5

Las primeras cuatro líneas son controladas a través del bucle, si miras la programación del bucle, el código que muestra las cuatro primeras líneas solo lo he escrito 1 vez, en cambio, el resultado se ha escrito 4 veces. La última línea muestra la misma línea pero con $a valiendo 5. Y es que la línea de que incrementa $a se ha ejecutado 4 veces, hasta que $a que empezó valiendo 1 acaba con un 5.

Extra: diferencias bucles con llaves o sin llaves

Si la condición se evalua a verdadero el bucle ejecutará sus líneas de código, es decir, las que contienen sus llaves o, si no las escribimos, se ejecutará la línea de código justamente despúes de la defición de este. Así el siguiente bucle:

<?php
while ( $a < 5 ) {
  $a = $a + 2;
}
?>

Es equivalente a este otro:

<?php
while ( $a < 5 ) 
  $a = $a + 2;
?>

Los dos anteriores ejemplos tienen el mismo resultado. La omisión de las llaves indica que el bucle tan solo afecta a la línea siguiente a su definición. Este uso tan solo es recomendable en ciertos casos y cuando se tiene un dominio avanzado de esta estructura de control. En los ejemplos que incluiré siempre escribiré las llaves sean necesarias o no.

Resumen ¿Qué son los bucles?

Los conceptos que definen que són y como funcionan los bucles son:

  1. Mientras un condicional nos permite indicar al intérprete php bajo que condición deberá ejecutar una o varías líneas de código, los bucles extienden esta funcionalidad e incluyen la repetición del código entre llaves.
  2. Las estructuras de control iterativas, también conocidas como bucles, nos permiten repetir tantas veces como necesitemos las líneas de código incluidas entre sus llaves.
  3. La funcionalidad de un bucle (que es lo que hace) la marca el orden de ejecución de su contenido (las líneas de código entre llaves) y su sentencia de definición, es decir, su cabecera.
  4. Los bucles suelen tener tres partes claramente diferenciadas: incialización, condición y actualización.
  5. La inicialización de variables o inicialización se refiere a dar un valor a las variables que necesitaremos utilizar durante el desarrollo de la ejecución de las iteraciones del bucle.
  6. Necesitan una condición que marque cuando se deberá ejecutar su código y cuando deberá parar.
  7. La actualización de una estructura iterativa nos referimos al control del progreso del bucle.
  8. Si la condición no se cumple, el bucle finaliza. El intérprete salta a la línea tras el código que incluye el bucle (entre llaves), es decir, su código no se ejecuta.

Tipos de bucles en php

En las siguientes clases del curso veremos los bucles más comunes y básicos de la programación php y la programación en general, los que te acompañaran seguramente en tus desarrollos:

  • bucle While
  • bucle For
  • bucle Do While

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.