El bucle while - Curso de PHP y MySQL - Capítulo 17

Curso de PHP y MySQL desde cero

Empezamos otro tema nuevo, muy interesante, los bucles, pero antes, hay que ver un par de operadores nuevos. Incremento y decremento.

Los operadores de incremento y decremento de PHP

Gracias a los operadores de incremento o decremento, podemos restar el valor de 1 (decrementar) a un valor o adicionar (sumar, incrementar) el valor de 1.

El operador de incremento de PHP

Código PHP

<?php
$numero = 10;

echo ++$numero;
?>

Resultado en el navegador

11

Ten en cuenta, que si el operador está después de la llamada a la variable en el echo, se va a mostrar el valor de 10, puesto que el flujo de ejecución de PHP va de arriba a abajo y dentro de cada línea, de izquierda a derecha.

Código PHP

<?php
$numero = 10;

echo $numero++;
?>

Resultado en el navegador

10

PHP interpreta este echo de esta forma: imprime 10 incrementa.

Si escribes un echo en la siguiente línea, verás que te aparece el valor ya incrementado, puesto que el incremento lo ha hecho después de imprimir el primer echo.

Código PHP

<?php
$numero = 10;

echo $numero++."<br>";
echo $numero;
?>

Resultado en el navegador

10
11

El operador de decremento de PHP

Aplica todo lo anterior al operador de decremento, con la diferencia de que se resta 1 al valor.

Código PHP

<?php
$numero = 10;

echo $numero--."<br>";
echo $numero;
?>

Resultado en el navegador

10
9

¿Qué son los bucles?

Los bucles son estructuras de control de flujo que son capaces de repetir un bloque de código un número determinado o indeterminado de veces según una condición de entrada y de salida.

El bucle while de PHP

Empecemos con el primero de los bucles de PHP, el bucle while.

Pseudocódigo PHP

$variable_de_control = valor;
while (condición de salida) {
	//bloque de código con actualización (incremento/decremento)
}

¿Parece simple no? Empecemos con algo sencillo, un bucle que nos imprima por líneas el los números del 1 al 10.

Código PHP

<?php
$i = 1;
while ($i <= 10) {
	echo $i++."<br>";
}
?>

Resultado en el navegador

1
2
3
4
5
6
7
8
9
10

Analicemos como funciona. La variable de control llamada $i (se escribe $i por convención en bucles, aunque no es obligatorio) tiene un valor inicial. En el while le pasamos ese valor llamando a la variable y le decimos que la condición de salida (que deje de ejecutar el bucle) es que el valor de $i sea menor o igual que 10. En el momento que $i no sea menor o igual a 10, es decir, valga 11, se va a salir del bucle.
Dentro del bucle tenemos todo el código que se va a ejecutar. un echo que muestra el valor de $i cada ejecución del bucle. Además, con el operador de incremento ++, incrementamos en 1 el valor de $i cada vuelta. Aquí es donde ocurre la magia.

Probemos con decremento:

Código PHP

<?php
$i = 10;
while ($i >= 1) {
	echo $i--."<br>";
}
?>

Resultado en el navegador

10
9
8
7
6
5
4
3
2
1

Aquí simplemente he invertido la condición de salida y he puesto decremento para que vaya del 10 al 1.

Con el fin de que aprecies la utilidad de los bucles, mira como escribiríamos esto sin un bucle:

Código PHP

<?php
$i = 10;

echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
echo $i--."<br>";
?>

Se ve muy absurdo, ¿verdad? ¿Y si en lugar de 10 valores hay que imprimir 1000? Con las mismas 4 líneas del bucle, ya lo tendríamos, en cambio, sin ellos, tendríamos que escribir las 1000 líneas una por una.

En este capítulo, te estoy dando una visión muy simplificada de la utilidad de un bucle, pero ya verás que son totalmente necesarios en programación para hacer casi todo.