<?php
$a = array(1, 2, 3, 4, 5);
foreach ($a as $key => $elem) {
echo "$key = $elem"; echo ' = ';
var_dump(current($a));\
}
?>
다음과 같은 것을 실행할 때 내가 얻을 출력은 다음과 같습니다foreach는 현재
0 = 1 = int(2)
1 = 2 = int(2)
2 = 3 = int(2)
3 = 4 = int(2)
4 = 5 = int(2)
이 내가
0 = 1 = int(1)
1 = 2 = int(2)
2 = 3 = int(3)
3 = 4 = int(4)
4 = 5 = int(5)
내가? 점점되어야 출력 것을 나에게 보인다 current()를 $ a에서 for 루프 앞에 넣고 int (1)을 얻는다. 따라서 foreach 루프가 증가하는 것처럼 보입니다. 그러나 그 경우에 한 번만 그것을하는 이유는 무엇입니까?
for 루프에서 next()를 호출하면 증가하지만 그렇지 않으면 증가하지 않습니다. 물론 next()는 int (3) (즉, int (2) 다음의 값)에서 시작합니다.
왜 당신이 그것을 var_dumping됩니다 여기
귀하의 예는 예상 된 결과를 생성하는 각()로 다시이야? – art2처음에 next()를 수행 했으므로 bool (false)을 반환하고 있었기 때문입니다. int (0)와 bool (false)를 구분하기 위해 var_dump()를 사용했습니다. – neubert
이 예에서 current = 2 인 이유는 무엇입니까? foreach를 실행하기 전에 current = 1 –