foreach時加&符號:遍歷的同時改變原陣列即修改資料或者增加資料。
$arr = ['a', 'b', 'c'];
foreach ($arr as $key => &$value)
echo json_encode($arr); // ["a111","b111","c111"],這裡改變了原來陣列的值
使用&可能出現的問題:
$arr = ['a', 'b', 'c'];
foreach ($arr as $key => &$value)
foreach ($arr as $key => $value)
echo json_encode($arr); // ["a111","b111","b111222222"]
這是由於在使用賦值引用傳遞之後沒有釋放val
ue的值
,所以會
影響第二
個for
each
的使用。
可以使用
unse
t(
value的值,所以會影響第二個foreach的使用。可以使用unset(
value的
值,所以
會影響第
二個fo
reac
h的使用
。可以使
用uns
et(value)釋放變數。
$arr = ['a', 'b', 'c'];
foreach ($arr as $key => &$value)
unset($value); // 釋放$value的引用傳遞
foreach ($arr as $key => $value)
echo json_encode($arr); // ["a111","b111","c111"]
PHP中使用foreach時加 符號的用法
foreach時加 符號 遍歷的同時改變原陣列即修改資料或者增加資料。arr a b c foreach arr as key value echo json encode arr a111 b111 c111 這裡改變了原來陣列的值使用 可能出現的問題 arr a b c foreach arr ...
PHP中使用foreach引用需要注意的問題
本文目的 今天在寫專案時,發現php foreach語句中使用引用會出現奇特現象,故此記錄此現象,原因和解決方法。希望對其他人有幫助!現象 猜猜下面的 會輸出什麼?a array 1 one 2 two foreach a as key val do nothing var dump a forea...
Mybatis中使用foreach標籤批量插入資料
我們在mysql中可以使用foreach標籤進行批量插入資料。foreach中可以有兩種方式批量插入資料 方式1 intert into tablename values 值1,值2,值3 值1,值2,值3 方式2 intert into tablename values 值1,值2,值3 inte...