1、使用 foreach &$v 命名一样的时候,数组最后一个元素的 $v 引用在 foreach 循环之后仍会保留,建议使用 unset() 来将其销毁,或者使用array_walk(),或者使用不同命名
$user = [
[
'id' => 1,
'name' => '小王',
'age' => 17,
],
[
'id' => 2,
'name' => '小吃',
'age' => 22,
],
];
foreach ($user as &$v) {
$v['age_text'] = $v['age'] > 17 ? '成年了' : '未成年';
}
$goods = [1, 2, 3, 4, 5];
foreach ($goods as $v) {
}
halt($user);
array(2) {
[0] => array(4) {
["id"] => int(1)
["name"] => string(6) "小王"
["age"] => int(17)
["age_text"] => string(9) "未成年"
}
[1] => &int(5)
}
array(2) {
[0] => array(4) {
["id"] => int(1)
["name"] => string(6) "小王"
["age"] => int(17)
["age_text"] => string(9) "未成年"
}
[1] => array(4) {
["id"] => int(2)
["name"] => string(6) "小吃"
["age"] => int(22)
["age_text"] => string(9) "成年了"
}
}
foreach 官网