foreach가 &를 사용하여 배열 arr2를 순회한 후, 얻은 결과는 매우 혼란스럽습니다. & 순회 포인터가 어떻게 이동하는지 설명할 수 있는 전문가가 있는지 궁금합니다. 코드는 다음과 같습니다.
결과: 0 a1 s2 d0 a a1 s a2 s a
두 번째 순회 중에 포인터가 s로 이동했을 때 포인터가 멈춘 이유는 무엇입니까?
Following the voice in heart.
또는 이렇게 할 수도 있습니다:
출력:
한 가지 더
이유: 첫 번째 foreach中采取了引用传递的方式,第一次循环$v指向$arr2[0]的存储空间,第二次指向> $arr2[1]的存储空间,循环结束则指向$arr2[2] 저장 공간에 두 번째 foreach中采取了值传递的方式,第一次循环给$v赋值了a,即给$arr2[2]赋值了a,第二次同上,$arr2[2]的值变为了$arr2[1]的值,则$arr2变成了[a,s,s]에서는 배열의 마지막 요소가 두 번째 요소의 값이 됩니다
이유:
첫 번째 foreach中采取了引用传递的方式,第一次循环$v指向$arr2[0]的存储空间,第二次指向> $arr2[1]的存储空间,循环结束则指向$arr2[2] 저장 공간에
foreach
$v
$arr2[0]
$arr2[1]
$arr2[2]
두 번째 foreach中采取了值传递的方式,第一次循环给$v赋值了a,即给$arr2[2]赋值了a,第二次同上,$arr2[2]的值变为了$arr2[1]的值,则$arr2变成了[a,s,s]에서는 배열의 마지막 요소가 두 번째 요소의 값이 됩니다
a
$arr2
[a,s,s]
해결책: 처음에는 foreach结束后加一句unset($v); 두 번째foreach循环不用$v변수를 다른 이름으로 변경하세요
해결책:
처음에는 foreach结束后加一句unset($v);
unset($v)
두 번째foreach循环不用$v변수를 다른 이름으로 변경하세요
참조: PHP에서 배열 값을 변경하기 위해 foreach를 사용할 때의 문제 php 배열 클래스 객체 값 전달 참조 전달 차이
참조:
PHP에서 배열 값을 변경하기 위해 foreach를 사용할 때의 문제
php 배열 클래스 객체 값 전달 참조 전달 차이
또는 이렇게 할 수도 있습니다:
으아악출력:
으아악한 가지 더
으아악