PHP foreach &符号的用法,需要注意的坑
super
2021-04-16 12:26
3327
$array = [
'a' => [
'a1' => 1,
'a2' => 2
],
'b' => [
'a1' => 1,
'a2' => 2
],
'c' => [
'a1' => 1,
'a2' => 2
]
];
如果我们想把a,b,c中的a1的值修改为11:
常规写法:
foreach ($array as $k => $v) {
$array[$k]['a1'] = 11;
}
使用&符号写法:
foreach ($array as $k => &$v) {
$v['a1'] = 11;
}
使用&符号需要注意的地方:
遍历结束后,需要释放掉$v的值。如果不释放,恰好下面还有有一个foreach同样使用的是 $k => $v 那么会影响到下面的foreach的$v的值!!!
例如,恰好我们需要再次把a2的值修改为22,使用&的方式示例:
unset($v); // $v的值释放掉,这个很关键
foreach ($array as $k => &$v) {
$v['a2'] = 22;
}
工作中遇到了,做一个记录。
0 条讨论