2010-07-02 12 views
6

Mi problema: Quiero contar inverso en el ciclo for.¿Cómo contar inverso con para en php?

Esto es lo contrario de lo que quiero hacer:

for($i=1;$i<=10;$i++){ 
    echo $i; 
} 

Si pongo $i-- no hace obras (mis caídas del servidor).

Ayuda meeee!

Best Regards, Adam

+1

Si bloquea su servidor ... algo está pasando muy mal. ¿O es uno de esos usos liberales de "crash"? – Artefacto

+0

@Artefacto: Lo que quiere decir es que "el script PHP nunca regresa y la carga de la CPU aumenta". Como sucede cuando escribes bucles infinitos. – Tomalak

+0

Se estrelló porque comencé un ciclo infinito: P @thetaiko ha resuelto para mí. ¡Gracias por la ayuda! – Adam

Respuesta

23

Cuando dice $i-- caer el servidor, qué cambió la inicialización y el estado de $i?

for($i=10; $i>=1; $i--){ 
    echo $i; 
} 
+1

Omg :))) Soy un novato, sí lo cambié, pero no de esta manera Y funciona gracias: D – Adam

6

Si se toma el for como usted escribió y acaba de cambiar $i++ con $i--, el valor de $i se decrementa con cada iteración (1, 0, -1, -2, etc.) y la condición de bucle $i<=10 es siempre cierto.

Si desea contar hacia atrás, también es necesario cambiar las otras partes (inicialización y condición de bucle):

for ($i=10; $i>=1; $i--){ 
    echo $i; 
} 

O se toma el último y restar el valor actual de ella y agrega el primer valor a ella:

for ($first=1, $i=$first, $last=10; $i<=$last; $i++){ 
    echo $last - $i + $first; 
} 
+0

muchas gracias! – Adam

2

yo no lo entiendo, simplemente haciendo

for($i=10;$i>=1;$i--){ 
    echo $i; 
} 

es n No es suficiente?

+0

muchas gracias! – Adam

1

de la PHP manual

para (expr1; expr2; expr3) declaración

La primera expresión (expr1) se evalúa (ejecutado) incondicionalmente una vez al principio del bucle.

Al comienzo de cada iteración, se evalúa expr2. Si se evalúa como VERDADERO, el ciclo continúa y las declaraciones anidadas se ejecutan. Si se evalúa como FALSE, la ejecución del ciclo termina.

Al final de cada iteración, se evalúa (ejecuta) expr3.

+0

muchas gracias! – Adam