当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2020-03-05 19:05:35 浏览: 评论:0 

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

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

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

使用&可能出现的问题:

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

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

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

Tags: PHP循环 foreach

分享到: