Hola,
No, tu puedes poner las sentencias que mas se adapten a tus necesidades.
Lo de $i es solo un ejemplo, pero bien es cierto que se usa mucho.
Solo debéis saber que el código de la primera sentencia se ejecuta solo la primera vez, el condicional de la segunda sentencia se verifica en cada vuelta, y si es falso entonces se sale del bucle, y la ultima sentencia se ejecuta cada vez que se hace una iteración. Sabiendo eso, podéis usarlos como queráis.
Lo mas común es definir en la primera sentencia una variable que nos servirá para controlar el numero de veces que se ejecuta el bucle, en la segunda sentencia colocar un condicional que verifique que estado tiene la variable que definimos antes y pare el bucle cuando se lo especifiquemos, y en la ultima sentencia colocar un código que modifique la variable que definimos en la primera sentencia, con el fin de que el bucle no sea infinito.
Sin embargo, tu puedes colocar las sentencias que quieras.
Ejemplos de códigos con bucle forEjemplo 1. Este código ejecuta un bucle for que va a repetir su código un numero de veces aleatorio<?php
$aleatorio = 0;
$var = FALSE;
for($contador=0; $var == FALSE; $contador++) {
/* Estas son las tres sentencias que ejecutan el bucle for, voy a explicar las tres
En primer lugar, la primera define una variable $contador como 0. Esta variable nos va a servir para contar el numero de veces que
se ejecuta el bucle, pero no va a servir para terminar el bucle porque no influye en la segunda sentencia, que es el condicional.
En el condicional decimos que si $var es igual a FALSE entonces el bucle debe seguir ejecutandose, y esta comprobación se hace cada vez que se ejecute
el bucle. En caso de que $var sea igual a TRUE, entonces el bucle habrá terminado.
En la ultima sentencia decimos que en cada vuelta que el bucle da, se sume 1 a la variable $contador. De esta forma podemos saber el numero
de veces que se ha ejecutado el bucle */
$aleatorio = rand(0,30);
if($aleatorio == 23) { $var = TRUE; }
/* La variable aleatorio va a almacenar un numero aleatorio desde el 0 hasta el 30 cada vez que el bucle haga una vuelta
Si el numero aleatorio sale 23, entonces daremos a la variable $var un valor TRUE, y el bucle se interrumpirá */
}
/* Cuando se salga del bucle, mostramos el numero de veces que se ha ejecutado */
echo $contador;
?>Ejemplo 2. Este código usa letras en lugar de números, pero al fin y al cabo realiza la misma función que el código que puse en mi mensaje anterior<?php
$var = "Prueba";
$contador = 1; /* Esta variable nos servira para contar el numero de iteraciones que da el bucle */
for($var='Hola'; $var != 'Holaaaaaa'; $var=$var."a") {
/* En la primera definimos $var como "Hola".
En la segunda indicamos que el bucle se siga ejecutando siempre que $var sea distinto de "Holaaaaaa"
En la tercera le añadimos una letra "a" a la variable $var */
echo "El bucle se ha ejecutado ".$contador." veces. <br />";
$contador++; /* Sumamos uno al contador. Colocar esta linea aquí es equivalente a colocarla en la tercera sentencia */
}
?>Espero que lo entendáis.
Por cierto, no es necesario añadir una variable para que cuente el numero de veces que se ejecuta el bucle (Como en estos casos la variable $contador), pero lo hago para que entendáis un poco mas el código.
Podéis ejecutar los códigos si queréis, funcionan perfectamente.
Saludos