首页 > 开发 > PHP > 正文

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

2024-05-04 22:02:12
字体:大 中 小
来源:转载
供稿:网友

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

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表