Hola amigos de Taringa!, en la lección pasada vimos los estructuras de control condicionales o de toma de decisiones en PHP, estas son dos: if y switch, pudiendo if variar y presentarse como if-else o if-else if-else, ahora veremos el segundo tipo de estructura de control de flujo en PHP. Lección 6: estructuras de control de flujo, bucles iterativos Estructuras de control de flujo iterativas Una estructura de control de flujo iterativa o bucle permite que un bloque de código se repite un número determinado de veces. En PHP existen varios tipos de bucles, tenemos el bucle for, while y foreach y los veremos a cada uno de ellos pero primeros crearemos un archivo llamado script6.php en la carpeta de nuestro servidor. Bucle for El primer bucle que veremos será el bucle “for” este trabaja con una variable contadora que deberemos inicializar, luego escribir una condición que deberá de cumplirse y luego aumentar o decrementar el valor de la variable contadora. La estructura de un bucle for es la siguiente: Como siempre esto suena muy difícil en la teoría (o quizá el profesor explica del orto) pero en la práctica es una pasada. Veamos un ejemplo: Expliquemos ahora como funciona esto. Bien lo primero que hemos hecho es crear el cuerpo de nuestro bucle for con la palabra reservada “for” (apuesto a que no lo viste venir) seguido pusimos un par de paréntesis y un par de llaves para el cuerpo. Dentro de los paréntesis declaramos una variable en tiempo de ejecución esa es la variable “i” puedes llamarla como quieras pero es regla de estilo nombrarla “i”, a esta variable le asignamos el valor 0; luego de ellos ponemos un punto y coma para separar la linea imaginaria de la declaración de variable y seguido ponemos una condición: mientras la variable “i” sea menor que 10 haremos lo que esté dentro de las llaves, ¡pero esperen! “i” vale 0 por ende siempre será menor que 10… Bueno, así es en teoría pero la última sentencia dentro de los paréntesis “i++” indica que en cada iteración del bucle “i” aumentará en 1, esta es la función del “++” mejor conocido como operador de incremento. También deben saber que existe un operador de decremento y se representa como “--”. Bien, luego hemos condicionado lo que está dentro del cuerpo del bucle for, eso ya lo saben pues lo tratamos en la lección anterior. En fin, si nos vamos al navegador veremos lo siguiente: ¡MAGIA MALDITA SEA! Pues en realidad no, siento decepcionarte. El bucle for evalúa el valor de “i” y ejecuta el código que esté contenido entre las llaves, como puse un condicional if para que evaluara la variable “i” nuevamente pues eso hace, como “i” en la primera iteración vale 0 se imprime el texto “No tengo monedas” y el bucle for vuelve a iniciar, ahora “i” vale 1, se evalúa en el if e imprime “Tengo 1 moneda” y así mientras se cumpla la condición de que “i” sea menor que 10 y como “i” se inicializa en 0 las iteraciones serán desde 0 hasta 9, si cambias la condición hasta que “i” sea menor a 1,000 pues se ejecutará 999 veces. Bucle while El bucle for ejecuta un bloque de código un número determinado de veces, el bucle while también pero lo hace mientras se cumpla la condición dada o lo que es lo mismo mientras la condición evalue a TRUE. El cuerpo de un bucle while es el siguiente: La teoría es una mierda, vamos al ejemplo: Como verán he comentado el ejemplo anterior para que no cause problemas. Bien lo primero que hay que tener en cuenta es que en un bucle while no podemos declarar una variable en tiempo de ejecución, la variable a evaluar ya debe existir y por eso la defino fuera del bucle. Al bucle se le pasa entre paréntesis única y exclusivamente la condición a evaluar, contenido entre las llaves debe ir el código que se ejecutará en cada iteración y por último el incremento o decremento de la variable según corresponda, si se fijan en la linea 23 veremos esto: “i++”, osea la variable contadora aumenta su valor al final de cada iteración. Es muy importante no olvidar esta linea pues de lo contrario “i” siempre valdría 0 y el bucle se ejecutaría infinitamente, colgando así su navegador y obligándolos a cerrarlo por el monitor de sistema. Si se fijan este es exactamente el mismo ejemplo que con el bucle for pero aplicado a un bucle while, lo que quiere decir que se puede usar un bucle u otro para resolver los mismos problemas pero solo en casos específicos. Veamos que dice el navegador: Lo mismo que antes. Para saciar su curiosidad podrían darle un valor de 10 a la variable “i”, cambiar la condición a que “i” sea mayor que 0 y usar el operador de decremento de la siguiente forma: Y los resultados en el navegador serían los siguientes: Bien, ya vamos entendiendo. Bucle foreach El bucle foreach es de lo más curioso y de las características que personalmente más me gustan de PHP, su aplicación está destinada al manejo de arrays aunque si tiene otra aplicación es de mi total ignorancia. Bien, lo que hace foreach es recorrer los elementos de un array y hacer una acción en cada iteración. Hay que tomar en cuenta que foreach tiene dos variaciones, una para arrays simples y otra para arrays asociativos. Veamos la estructura de cada una de ellas: value){ hacer esto... } ?> El primer caso se corresponde con un array de acceso por índices y el segundo con un array asociativo, pero veamos primero un ejemplo y luego profundicemos: Como ven lo primero que he hecho es definir un array llamado “grupos” y dentro de él he puesto el nombre de 7 bandas que suelo escuchar, luego he declarado mi bucle foreach. Este bucle se corresponde con la primera forma expuesta, lo primero que hago es usar la palabra reservada foreach, un par de paréntesis y un par de llaves para formar el cuerpo del bucle, luego le paso un array a los paréntesis del foreach, en este caso el array “grupos” seguido de la palabra reservada “as” y la pseudo-variables “key” ya que esta variable se declara en tiempo de ejecución y solo se puede usar dentro del foreach. Esta variable “key” en realidad puedes llamarla como desees (al igual que la variable “i” dentro de un bucle for) pero debes recordar su nombre para poder utilizarla luego. Bien en este pequeño ejemplo lo que hago es imprimir la pseudo-variable “key” en cada iteración del bucle foreach, esta pseudo-variable toma el valor del primer elemento de mi array, luego del segundo y así mientras queden elementos en mi array. Si nos vamos al navegador veremos esto: ¡Exacto! Los nombres de 7 excelentes bandas, ¿Genial, no? ¡Pero esperen! Había dicho que existe otra forma de usar foreach para los arrays asociativos, reformemos nuestro pequeño ejemplo entonces. Como ven he convertido mi array en un array asociativo, por ende el nombre de cada banda se ha convertido en la clave del elemento correspondiente de mi array y su valor pasa a ser el género. Hasta aquí nada nuevo, eso ya lo estudiamos hace algunas lecciones, concentrémonos en el foreach. Bien si se dan cuenta lo único que he hecho es agregar una nueva pseudo-variable al bucle, luego de la pseudo-variable “key” he usado el operador flecha “=>” (tiene otro nombre pero siempre se me olvida) y luego de este la pseudo-variable “value” que hace alusión al valor de de cada elemento del array. Por último en la línea 35 no solo imprimo la pseudo-variable “key” sino también “value”, así cuando nos vamos al navegador el resultado es el siguiente: Exacto, de esta manera podemos acceder e incluso modificar no solo las claves sino también los valores de nuestros arrays sin la necesidad de conocer cada uno de ellos, en otras palabras podremos manipularlos de manera dinámica. Bien, hasta aquí la clase de hoy, en la próxima lección exploraremos las funciones definidas por el usuario y empezaremos a hacer bloques de código medianamente complejos (dentro del nivel principiante claro está), si has seguido el curso no pienses en dejarlo pues luego construiremos un pequeño proyecto final con todo lo aprendido aquí… Si tienen dudas o dificultades al respecto favor dejarme un comentario o mensaje privado, también dejo mi cuenta en Twitter por si no les basta ya con joder por aquí @maxalmonte14. Lecturas recomendadas: http://php.net/manual/es/control-structures.for.php http://php.net/manual/es/control-structures.while.php http://php.net/manual/es/control-structures.foreach.php http://php.net/manual/es/language.operators.increment.php
Aprende a programar en PHP sin salir de Taringa! Parte 7
Datos archivados del Taringa! original
0puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:
Posts Relacionados
Crea tu imagen Que Cambia con F5emakpo10
0
archivado0
archivadoComo crear una pagina web gratis!ElQueMasSabe
0
archivadoDejá tu comentario
No hay comentarios nuevos todavía