Avatar ·

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`是如何处理