PHP foreach引用&

Posted PHP菜鸡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP foreach引用&相关的知识,希望对你有一定的参考价值。

将以下代码打印

$variable = [‘a‘, ‘b‘, ‘c‘];

foreach ($variable as $key => &$value) {

}

foreach ($variable as $key => $value) {

}
echo "<pre />";
var_dump($variable);
echo "<pre />";
#结果
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  &string(1) "b"
}

打印出来的结果跟预期结果的不一致,这是因为在第一次的foreach中使用了引用,顺其而然的$value变成了引用变量,因而$value与 $a[ 2 ]指向了同一个地址空间(共享变量值),在第二个foreach中,不断的将$arr中的值赋给$value,进而$arr[2]的值也会跟随者$value的变化而变化,将第二次中的$variable 打印出来的结果

array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "a" }
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "b" }
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "b" } 

$value值与$arr[2]值的变化

技术分享图片

以上是关于PHP foreach引用&的主要内容,如果未能解决你的问题,请参考以下文章

php的引用&

php foreach引用赋值

php foreach使用引用的陷阱

php中foreach使用引用的陷阱

[PHP] foreach循环的引用赋值可能导致的问题

PHP foreach引用