PHP中使用foreach時加&符號的用法


foreach時加&符號:遍歷的同時改變原數組即修改數據或者增加數據。

$arr = ['a', 'b', 'c'];
foreach ($arr as $key => &$value) {
    $value = $value . '111';
}
echo json_encode($arr);      // ["a111","b111","c111"],這里改變了原來數組的值

使用&可能出現的問題:

$arr = ['a', 'b', 'c'];
foreach ($arr as $key => &$value) {
    $value = $value . '111';
}
 
foreach ($arr as $key => $value) {
    $value = $value . '222';
}
echo json_encode($arr);      // ["a111","b111","b111222222"]

這是由於在使用賦值引用傳遞之后沒有釋放$value的值,所以會影響第二個foreach的使用。可以使用unset($value)釋放變量。

$arr = ['a', 'b', 'c'];
foreach ($arr as $key => &$value) {
    $value = $value . '111';
}
unset($value);     // 釋放$value的引用傳遞
foreach ($arr as $key => $value) {
    $value = $value . '222';
}
echo json_encode($arr);      // ["a111","b111","c111"]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM