Perché i valori della variabile in PHP non hanno un comportamento coerente nel seguente codice?Perché l'operatore di pre/post incremento si comporta in modo errato?
<?php
$piece = 10;
// output is 10 10 10 10 11 12
echo $piece . $piece . $piece . $piece++ . $piece . ++$piece;
$piece = 10;
// output is 10 10 10 11 12
echo $piece . $piece . $piece++ . $piece . ++$piece;
$piece = 10;
// output is 11 10 11 12
echo $piece . $piece++ . $piece . ++$piece;
?>
La domanda è: perché la prima uscita nell'ultimo esempio è uguale a 11? invece di 10 come sopra 2 esempi.
Operatori di incremento/decremento: http://php.net/manual/en/language.operators.increment.php – solar411
@ solar411 puoi fare riferimento a qualcosa di più specifico? –
Ecco un codepad per questo: http://codepad.org/gEoWxshO. Comportamento molto strano - è come se il pre-incremento nel secondo blocco fosse eseguito di nuovo sul primo '$ pezzo' nel terzo blocco. O forse il post-incremento nel terzo blocco è responsabile, nel qual caso l'incoerenza tra gli esempi non è spiegata. – halfer