A-A+

PHP学习之foreach循环时加&符号的说明

2020年03月15日 我爱编程 暂无评论

本文主要内容是关于PHP的foreach循环时加&符号的说明,感兴趣的朋友可以了解一下。

foreach时加&符号:遍历的同时改变原数组即修改数据或者增加数据。

  1. $arr = ['a''b''c'];
  2. foreach ($arr as $key => &$value) {
  3.     $value = $value . '111';
  4. }
  5. echo json_encode($arr);      // ["a111","b111","c111"],这里改变了原来数组的值

使用&可能出现的问题:

  1. $arr = ['a''b''c'];
  2. foreach ($arr as $key => &$value) {
  3.     $value = $value . '111';
  4. }
  5. foreach ($arr as $key => $value) {
  6.     $value = $value . '222';
  7. }
  8. echo json_encode($arr);      // ["a111","b111","b111222222"]

这是由于在使用赋值引用传递之后没有释放$value的值,所以会影响第二个foreach的使用。可以使用unset($value)释放变量。

  1. $arr = ['a''b''c'];
  2. foreach ($arr as $key => &$value) {
  3.     $value = $value . '111';
  4. }
  5. unset($value);     // 释放$value的引用传递
  6. foreach ($arr as $key => $value) {
  7.     $value = $value . '222';
  8. }
  9. echo json_encode($arr);      // ["a111","b111","c111"]

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录