看别人的PHP代码有一点不明白

foreach ($data as &$e) {}
和
foreach ($data as $e) {}

有什么区别?
阅读 3.5k
4 个回答
$data = [1,2,3];
foreach($data as &$e){
    $e+=1;
}
var_dump($data);//[2,3,4]
unset($e);

$data = [1,2,3];
foreach($data as $e){
    $e+=1;
}
var_dump($data);//[1,2,3]

一个是引用,作用于原值本身;一个是使用,不会更改原值。

不加&的话,就相当于内部复制了一个变量去使用,不会修改原本的值,地址也不会有改变。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题