The first form loops over the array given by array_expression. On each iteration, the value of the current element is assigned to value and the internal array pointer is advanced by one (so on the next iteration, you'll be looking at the next element