<?php
$a = 'abc';
$b = $a;
echo $a;//abc
echo $b;//abc
$b = 'ccc';
echo $a;//abc
echo $b;//ccc
?>
<?php
$a = $b = 'abc';
echo $a;//abc
echo $b;//abc
$b = 'ccc';
echo $a;//abc
echo $b;//ccc
?>
<?php
$a = 'abc';
$b = &$a;
echo $a;//abc
echo $b;//abc
$b = 'ccc';
echo $a;//ccc
echo $b;//ccc
?>
<?php
$a = 'aaaa';
$a1 = 'aaaa1111';
$b = &$a;
$b = 'bbbb';
echo $a; // bbbb
$b = &$c;
$b = 'aaaa';
echo $a;//bbbb
?>
<?php
//對於陣列中的乙個元素,作為引用賦值的情況
$arr = ['a','b','c'];
$v = &$arr[2];
$v = '111';
print_r($arr);//['a','b','111']
$arr2 = ['a', 'b', 'c'];
$v =&$arr2[2];
$v = ['222'];
print_r($arr);//['a','b','111']
?>
`<?php
//foreach中&$v的使用情況
$arr = [1,2,3];
foreach($arr as $k => $v) {}
print_r($arr);//[1,2,3]
$v = 4;
print_r($arr);//[1,2,3]
$arr = [1,2,3];
foreach($arr as $k => &$v) {}
print_r($arr);//[1,2,3]
$v = 4;
print_r($arr);//[1,2,4]
?>
<?php
//兩個foreach連續用&$v的情況
$arr = [1,2,3];
foreach($arr as $k => &$v) {}
print_r($arr);//[1,2,3]
$arr2 = [11,12,13];
foreach($arr2 as $k => &$v){}
print_r($arr);//[1,2,3]
?>
#測試題
<?php
for($i = 1; $i<=2; $i++)
$a = $arr;
$arr = [11,12,13];
foreach($arr as $k =>&$v)
$b = $arr;
}print_r($a); //[ [1,2,3], [1,2,3] ]
print_r($b); //[ [11,12,3], [11,12,13] ]
#第一次for迴圈
#$arr設定為[1,2,3], $v變數被先後賦值為1,2,3, $arr不變---所以$a[0] = [1,2,3]
#$v變數先後指向$arr[0], $arr[1], $arr[2],$v是乙個引用,最後是引用了 $arr[3]的值, 但是$arr不變。--- 所以$b[0] = [11,12,13]
#第二次for迴圈
#$arr被重置為[1,2,3],【但是$v已經是乙個存在的引用了,指向$b[0][2]】,$v變數被先後賦值為1,2,3, $arr不變---所以$a[1] = [1,2,3],但是此時$b[0][2]變為了3
#$v變數先後指向$arr[0], $arr[1], $arr[2],$v是乙個引用,最後是引用了 $arr[3]的值, 但是$arr不變。--- 所以$b[1] = [11,12,13]
#測試題
<?php
$a = [1,2,3];
foreach($a as $k => &$v)
var_export($a);//array ( 0 => 2, 1 => 4, 2 => 6, )
foreach($a as $k => $v)
var_export($a);//array ( 0 => 2, 1 => 4, 2 => 16, )
?>
mybatis 中foreach中的坑
我踩過一次坑,記錄一下,也發篇部落格來幫助同樣遇到這個問題的人 進入正題 有乙個需求是想通過傳入乙個字串陣列,然後通過goods coding欄位匹配出不在此陣列內的所有商品。所以我使用foreach迴圈,如下 test codings null and codings.length 0 and g...
PHP之foreach引用填坑
看到一篇文章描 就是它 述了php的乙個語法特點,用文本來描述就是如果對乙個陣列進行foreach引用遍歷過後在對這個陣列使用同樣的變數進行一次普通foreach遍歷會導致這個陣列的值發生變化。我這個描述可能還是不太清楚,直接上 可以看到在迴圈當中沒有任何 所以兩次列印出來的資料肯定應該是一模一樣的...
php中用foreach改變陣列的值的問題
翻到php文件的foreach那頁這樣寫道 foreach 語法結構提供了遍歷陣列的簡單方式。foreach 僅能夠應用於陣列和物件,如果嘗試應用於其他資料型別的變數,或者未 初始化的變數將發出錯誤資訊。有兩種語法 foreach array expression as value statemen...