ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# php5.3以后的foreach的&符号不建议使用.md ## 1、原因 有时候会出现奇怪的问题, 有时候上边的foreach没问题,下边的却出现了问题!究其原因一句话解释: >在 `foreach($arr as &$value)` 数组遍历到最后,引用关系并没有断开 什么原因呢?一篇文章详细解释了这一切,文章地址:http://note.youdao.com/share/?id=246baa8f946c354d9ddee002dd0e3df6&type=note#/ ## 2、php5.3以前的写法: ``` foreach ($arr as $key => &$value){ $value['sex'] = 'man'; } ``` ## 3、php5.3以后的写法: ``` foreach ($arr as $key => $value){ $value[$key]['sex'] = 'man'; } ``` 或者 ``` foreach ($arr as $key => &$value){ $value['sex'] = 'man'; } unset($value); ``` ## 4、示例如下: ``` <?php $arr = array( array( "id"=>"1", "value"=>21 ), array( "id"=>"2", "value"=>22 ), array( "id"=>"4", "value"=>23 ) ); //比如增加一个 sex 的值 foreach ($arr as $key => &$value){ $value['sex'] = 'man'; } //print_r($arr); foreach ($arr as $key => $value) { $arr[$key]['sex'] = 'man'; } //print_r($arr); ```