4.- Sentencia for
Los bucles for son los más complejos en PHP y se comportan, al
igual que el while, como sus homólogos en C/C++. La sintaxis de un
bucle for es la siguiente:
for(expresión1;expresión2;expresión3){
sentencias
}
La primera expresión cumple la función de
inicializar las variables de control del bucle y es evaluada una vez
incondicionalmente al comienzo del bucle.En cada una de las iteraciones,
al comienzo, se evalúa la expresión 2 de modo que si su resultado es
verdadero, el bucle continúa y se ejecutan las sentencias de éste,
mientras que si se evalúa como falso finliza la ejecución del bucle.
Además, al final de cada iteración, se ejecuta la expresión 3, la cual
suele incluir el incremento/decremento de alguna de las varibles
utilizadas en el for.
Cada una de las expresiones puede estar vacía o contener
múltiples expresiones separadas por comas. En la expresión 2, todas las
expresiones separadas por una coma son evaluadas, pero el resultado se
toma de la última parte. De hecho, el caso de que ésta esté vacía
significaría que el bucle se ejecutará indefinidamente, por lo que hay
que tener cuidado al implementar esta parte.
Vamos a mostrar cuatro ejemplos cuyo resultado será el de imprimir los números del 1 al 10:
Y el resultado:
Si los comparamos, el primero de los ejemplos es
el que tiene el código más legible y el que más se suele utilizar. Aun
con ello, hemos podido ver que algunas de las expresiones del for se
pueden dejar vacías para, en las sentencias del interior, realizar las
comprobaciones necesarias. También, en los ejemplos 2 y 3, se puede
observar la utilización del break como salida directa del bucle.
Este tipo de estructuras se suele utilizar,
también, como elemento para iterar sobre vectores (Arrays). En el
siguiente ejemplo se define un vector de nombres y el for se encarga de
imprimirlos utilizando como índice del vector la variable i:
El resultado será la impresión de todos los amigos:
Otra de las posibilidades que tenemos con la
sentencia for es la de recorrer los elementos a la inversa, de tal modo
que si queremos comenzar por el último amigo y acabar por el primero:
Obteniendo como resultado:
Si lo aplicamos a los ejemplos del principio, en
los que se imprimían los números del 1 al 10, podríamos imprimir los
números del 10 al 1:
Tal y como muestra el resultado:
|