PHP While y Do-While
Una de las maneras más simples que tiene PHP de crear un loop o repetir un bloque de código mientras se cumple una condición es while, también podemos utilizar do-while para que pase por el bloque al menos una vez.
while
En la sentencia, while
si la expresión es true
el bloque dentro de while se repetirá hasta que no sea false. En esto tenemos que tener cuidado porque si la expresión siempre es while se creará una repetición o loop infinita/o.
while($expresion){ //bloque a ejecutar }
También podemos expresar while de la siguiente manera. Esta es una manera alternativa de escribir esta estructura de control.
Sintaxis / Sintaxwhile($expresion): //bloque a ejecutar endwhile;
ejemplo de while:
Ejemplo de while<?php $a = 7; while($a>1){ echo $a; $a=$a-1; }//repetira esto hasta llegar a 2 echo "termino el loop"; ?>
El uso más común de while es la lectura de datos, especialmente la que llega de una consulta a la base de datos, esto también lo puede hacer utilizando foreach debido a que podemos decirle a la extensión de MySQLi como queremos obtener los datos.
Sobre preferencias la mía es utilizar foreach
, pero en el ámbito laboral probablemente se prefiera a while
. De todas maneras recuerde que esto depende de lo que especifiquemos en la extensión MySQLi o la extensión PDO
en while será algo asi:
while ($fila = mysqli_fetch_array($result)){ // codigo que mostrara los datos }
En tanto, en foreach obtendremos todos los datos de la consulta e iteraremos con respecto a ellos.
PHP do-while
La sentencia do-while
es similar a while
excepto que en la sentencia do-while
el bloque se ejecuta al menos una vez. Se ejecuta el bloque y luego se chequea la expresión si es true sigue ejecutándose.
do{ //bloque a ejecutar }while(expresion);
ejemplo en que se recorre el bloque una vez:
Ejemplo<?php $a = 0; do{ echo "recorro el bloque al menos 1 vez"; $a=$a-1; }while(7<$a); ?>
En Ocasiones es factible que necesitemos do-while
por ejemplo en un crawler para leer una página, ya que la obtención de los links se hará al menos una vez. Otra opción es la lectura de datos.
Puedes ver en una forma menos detalla de estructuras de control aquí: https://blastcoding.com/estructuras-de-control-php/