[Tutorial PHP] No repitas codigo, usa bucles (while, do…while)
Ahora que disponemos de una base en PHP y somos capaces de hacer pequeños scripts vamos a plantear situaciones donde el volumen de código aumenta de forma considerable.
Imagina que te encuentras en la situación de mostrar una palabra seguida de un guión que se repite 5 veces en pantalla, el script que estas pensando seguro que se parece a este:
<?php echo “palabra – palabra – palabra – palabra – palabra -”; ?>
Ahora usando el mismo script te voy a pedir que muestres 10 veces la palabra, o mejor aun, 500 veces. ¿Realmente vas a perder el tiempo en repetir lo mismo 500 veces?. Hay formas mucho mas eficientes y potentes de hacerlo, y esas formas son los bucles.
Los bucles son sentencias que repiten un numero determinado de veces un bloque de código, el momento en el que debe parar lo definimos indicándole una condición que ha de cumplirse para que pueda parar. En PHP disponemos de varias sentencias para crear bucles donde elegir, la decisión en favor de uno u otro normalmente se basa en gustos, comodidad, y eficiencia.
Empezaremos por el bucle While puesto que lo considero el mas sencillo. Su uso es muy similar a una sentencia if.
<?php
$repetir = 1; //Definimos una variable para contar.
while($repetir <= 500){ //Se repetirá siempre que $repetir sera menos o igual a 500
echo “ palabra -”;
$repetir++; //Sumamos uno a la variable
}
?>
Usamos la variable $repetir como controlador de repeticiones, cada vez que el bucle se ejecuta le sumamos 1, y en el condicional nos aseguramos de que no se pase del numero de repeticiones que queremos.
Este ejemplo seria la forma correcta de resolver el problema a repetir 500 veces una palabra. Como puedes observar su uso no esconde nada complejo, primero comprueba el condicional dentro de la sentencia while() y si se cumple (TRUE) se ejecuta el código que hay entre las llaves, en caso de que no se cumpla la condición, el bucle no se ejecuta y sigue el flujo del script de forma normal.
Hay una variante del bucle While que nos permite hacer la comprobación del condicional después de haber ejecutado el código interior, esto es útil en casos donde necesitemos al menos ejecutar una primera vez el código y luego realizar la comprobación para saber si es necesario hacerlo de nuevo, es el bucle do…while.
<?php
$repetir = 0; //Definimos una variable para contar.
do {
echo “ palabra -”;
$repetir++; //Sumamos uno a la variable
} while ($repetir < 500) //Se repetirá siempre que $repetir sera menor a 500
?>
Este seria el ejemplo anterior de forma que se compruebe nuestra condición después del bucle.
De momento y para no alargarlo mas dejo el articulo de los bucles aquí, el próximo articulo de esta serie tratara sobre los bucles for y foreach.

![[Tutorial PHP] Usando Bucles](http://www.nazariglez.com/wp-content/uploads/2012/03/bucles1.png)









Gracias Nazarí, estoy siguiendo tu tutorial sobre php, me gusta la manera que explicas, es clara y aprendo rápido , esperando el próximo capitulo.
Buenas Jonatan, me agrada ver que te sirve y que lo entiendes, disculpa mi tardanza en seguir con esto, me ha pillado una época de mucho trabajo y exámenes y lo he abandonado un poco, intentare redactar y subir la siguiente parte el fin de semana o a principios de la semana que viene. Te agradezco mucho el comentario y espero que sigas entrando para ver como va el tutorial
Un Saludo
Claro! Así entre parte y parte siempre voy practicando y escribiendo cosas sencillas para coger soltura.
Con este cap, ya he podido probar algunas cositas sencillas, me gusta php ^^
Hola Nazari,
Yo añadiría el uso de closures que venían con php5.3, y son geniales para no tener funciones desperdigadas por ahí, por ejemplo:
//devuelve los valores pares de un array
array_filter( array(1,2,3,4,5,6) , function($val){ return ($val & 1); } );
En php5.4 tenemos también los Traits, muy útiles para clases que comparten código http://es2.php.net/manual/es/language.oop5.traits.php
Un saludo!
Buenas Asier!, procurare añadir al tutorial y explicar en algún articulo próximo el uso de closures, es una utilidad muy interesante mas extendida en javascript que en php por ejemplo, pero que tiene un gran potencial.
Nunca he usado traits aunque me pareció una actualización del lenguaje bastante útil, quizás me recuerda un poco a la composición en java, viene a ser como un comodín para heredar métodos de varias clases, y aunque no se mucho acerca de esto, tratare de aprender y comentarlo cuando llegue a los objetos.
Te agradezco mucho tu aporte y tu comentario!!
Trackbacks & Pingbacks
Información Bitacoras.com…
Valora en Bitacoras.com: Ahora que disponemos de una base en PHP y somos capaces de hacer pequeños scripts vamos a plantear situaciones donde el volumen de código aumenta de forma considerable. Imagina que te encuentras en la situación de mostrar ……
Leave a Reply
Want to join the discussion?Feel free to contribute!