¿En qué se diferencian? Esto es lo que estoy pensando, pero no estoy seguro ...Pre-incremento frente a incremento posterior
Si usa pre-incremento, por ejemplo en un bucle for con ++ j, entonces básicamente está diciendo: "Haga una copia de el valor de j para usar en el ciclo, luego incrementar j, luego pasar por las instrucciones en el ciclo con la copia de j ". Si está usando post-incremento en el mismo bucle j ++, básicamente está diciendo: "Haga una copia del valor de j para usar en el bucle, luego pase por las instrucciones en el bucle con la copia de j, luego incremente j. "
La razón por la que no estoy seguro es porque he creado un bucle for que multiplica el valor de j por 10 y luego emite el resultado para j = 1 a j = 12, usando post e incrementos previos. La salida legible para humanos es exactamente la misma con incrementos posteriores y previos. Estoy pensando, '¿Cómo son exactamente las salidas si no hay algún tipo de operación de copia involucrada?'
Entonces, supongo que la diferencia entre el incremento previo y posterior es realmente importante, en php, cuando uso referencias (que actúan como punteros en php) en lugar de nombres para los valores devueltos? Esto se debe a que no se hacen copias de las referencias, por lo que el pre-incremento sería: "Incrementar j, luego pasar por las declaraciones en el ciclo con el valor cambiado de j, luego incrementar j nuevamente ...", mientras que incremetation se vería así: "Use el valor de j para las instrucciones en el bucle, luego cambie el valor de j, luego pase por el bucle con el nuevo valor de j ..."
Este comportamiento es independiente del idioma (o al menos, no específico de PHP), así que esto es realmente un duplicado de [¿Por qué no cambiar el pre al incremento de la publicación en la parte de iteración de un ciclo para hacer una diferencia?] (http://stackoverflow.com/questions/1918196/why-doesnt-changing-the-pre-to-the-post-increment-at-the-iteration-part-of-a -for) –
Además de lo que dice la marca, esta pregunta sugiere que usted tiene un malentendido bastante fundamental sobre lo que realmente hace un bucle for ... no hay copia involucrada en absoluto: la tercera cláusula de un bucle for se ejecuta simplemente al final del cuerpo del bucle puede poner cualquier statmenet que desee allí y no se realizará ninguna copia especial – tobyodavies
Y no hay referencias que no actúen como punteros. – netcoder