Почему значения переменной в PHP не имеют последовательного поведения в следующем коде?Почему оператор pre/post increment ведет себя неправильно?
<?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;
?>
Вопрос в том, почему первый результат в последнем примере равен 11? вместо 10, как он дает выше 2 примеров.
Операторы приращения/сокращения: http://php.net/manual/en/language.operators.increment.php – solar411
@ solar411 Вы можете ссылаться на нечто более конкретное? –
Вот код для этого: http://codepad.org/gEoWxshO. Очень странное поведение - это похоже на то, что предварительный приращение во втором блоке выполняется снова в первой «$ штуке» в третьем блоке. Или, может быть, пост-приращение в третьем блоке отвечает, и в этом случае несогласованность между примерами не объясняется. – halfer