Недавно обнаружил не совсем логичное поведение конструкции foreach. Дело в том, что если в качестве плавающей переменной используется ссылка, используемая ранее, то она не сбрасывается, что ведет к непредсказуемому результату. Ниже приведен пример того, как это происходит. Пример разделен пустыми строками на несколько блоков. В первом блоке создается массив, заполненный целыми числами от 1 до 5. Во втором блоке этот массив выводится на экран. В третьем блоке самое интересное: иницируется сбой логики. И в четвертом блоке, как и во втором, массив выводится на экран.
|