curso php: principiante

Fundamentos prácticos y teóricos de php5

capítulo 1.1.1: Instalación en windows
capítulo 1.1.2: instalación en ubuntu
capítulo 2.2: tipos de variables
capítulo 3.1: uso de IF
capítulo 3.2: Uso de for
capítulo 3.3: Uso de Switch
capítulo 3.4: Uso de While
capítulo 3.5: Uso de Do ... While
capítulo 3.6: Uso de foreach

Uso de for - Curso de php: principiante

La segunda sentencia importante que vamos a estudiar, es la sentencia FOR, es algo más compleja de entender que la sentencia IF, pero al igual que esta, es realmente importante comprenderla correctamente. A diferencia de lo que ocurría con IF, for no es una mera herramienta de comparación de condiciones, FOR supone una utilidad completa para controlar todo el proceso: condición, bucle y resolución, es decir. establecemos unas condiciones, mientras se cumplan se genera un bucle y cuando se dejan de cumplir, se interrumpe el bucle.


Veamos un ejemplo y comentémoslo:


<?php

for($ronda = 0; $ronda < 10; $ronda++){
   print "Estamos en la ronda " . $ronda . "<br />";
}

?>

El código que tenemos arriba, haría lo siguiente:



  1. Lee la variable $ronda y guarda en memoria el valor 0.

  2. Llega al FOR, e interpreta: mientras $ronda sea igual a 0 o $ronda sea menor que 10.

  3. Si se cumple la condición anterior, imprime "Estamos en la ronda " y después el valor de $ronda, como estamos en la primera ronda, sera de 0.

  4. Incrementa la variable $ronda en una unidad, ya que os recuerdo que $ronda++, primero imprime y después incrementa.

  5. Empezamos la segunda ronda, ahora la variable $ronda, vale 1 (porque la hemos incrementado). Como la condición es que $ronda < 10, aún la cumplimos, y por tanto, volvemos a imprimir "Estamos en la ronda"... pero en esta ocasión, ya será 1.

  6. Volvemos a incrementar... y continuamos en el bucle, hasta que $ronda valga 10, y por tanto se interrumpe automáticamente.


El resultado en pantalla del código sería:


Estamos en la ronda 0
Estamos en la ronda 1
Estamos en la ronda 2
Estamos en la ronda 3
Estamos en la ronda 4
Estamos en la ronda 5
Estamos en la ronda 6
Estamos en la ronda 7
Estamos en la ronda 8
Estamos en la ronda 9

Si os fijais, sale una sentencia por línea, eso lo hemos hecho, añadiendo el "<br />", al final de cada linea. Lo que hace es crear un salto de línea. Otra cosa que os debeis haber fijado, es en la concatenación de variables:


 print "Estamos en la ronda " . $ronda . "<br />";

Es como si hubieramos hecho esto:


<?php
$a = "Estamos en la ronda ";
$b = 1;
$c = "<br />";

print $a . $b . $c;
?>
//El resultado sería:
Estamos en la ronda 1

También funciona a la inversa:


<?php

for($ronda = 10; $ronda > 0; $ronda--){
   print "Estamos en la ronda " . $ronda . "<br />";
}

?>

Ahora empieza en 10, y en cada pasada, disminuye en intervalo. Es importante que se entiendan las condiciones del for:


for(condición inicial; condición final; incremento){
  sentencia
}

La parte de incremento, como puede verse, no lleva punto y coma al final, es bastante importante no olvidarse de esto. Otra cuestión importante es la condición, si indicamos que empiece en 0, y luego le decimos que el valor sea menor que 10, como en el ejemplo, nos imprimirá de 0 a 9. Si queremos que imprima de 1 a 10, deberemos hacer esto:


<?php

for($ronda = 1; $ronda < 11; $ronda++){
   print "Estamos en la ronda " . $ronda . "<br />";
}

?>

Hemos establecido el límite inferior, es decir, el inicio en 1, y el final en < que 11, es decir, en 10. Otra forma de hacer lo mismo sería así:


<?php

for($ronda = 1; $ronda <= 10; $ronda++){
   print "Estamos en la ronda " . $ronda . "<br />";
}

?>

Le hemos puesto el límite superior en <= 10, lo que significa, que tomará el valor 10, y por tanto lo imprimirá.