PHP中的foreach实际上是如何工作的?深入理解复制与引用
大家好!我开始学习PHP,遇到了`foreach`循环非常奇怪的行为。写了一段简单的代码,但结果让我困惑。
```php
1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
// 我原本期望所有值都翻倍!
```
我以为`$value`是数组元素的引用,但结果发现它是副本。好吧,于是我尝试使用`&`:
```php
2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) — 成功了!
```
但后来我读到这样做很危险,因为循环结束后`$value`仍然保留着对最后一个元素的引用。我还听说过什么“内部数组指针”,以及`foreach`并不像看起来那么简单。
有人能解释一下`foreach`是如何处理