>  기사  >  백엔드 개발  >  PHP의 & 값별 참조 문제와 관련하여 foreach 루프의 출력 결과 원리를 설명하는 데 도움을 주실 수 있나요? C# foreach javascript foreach c foreach

PHP의 & 값별 참조 문제와 관련하여 foreach 루프의 출력 결과 원리를 설명하는 데 도움을 주실 수 있나요? C# foreach javascript foreach c foreach

WBOY
WBOY원래의
2016-07-29 08:52:58916검색
PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? <br>代码如下: <br><?php <br />$arr = array('one','two','three'); <br />foreach ($arr as &$value){ echo 'Value:'.$value.'<br />'; } <br>foreach ($arr as $value){ echo 'Value:'.$value.'<br />'; } <br>?><br>输出结果:<br> Value:one<br> Value:two <br> Value:three <br> Value:one <br> Value:two <br> Value:two

<br>第一次带&的foreach并没有改变数组的内容。。<br>而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),<br>在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。<br>第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,<br>所以<br>第一次循环把one赋值给了最后一个值,<br>第二次把two赋值给最后一个,<br>第三次也就是最后一个已经在第二次循环被赋值为two,所以仍然是two。

위 내용은 PHP의 값 전달 참조 문제를 소개합니다. foreach 루프의 결과에서 출력 결과의 원리를 설명할 수 있습니까? , foreach 콘텐츠를 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.