Como o foreach realmente funciona no PHP? Entendendo cópia e referências
Olá a todos! Comecei a estudar PHP e me deparei com um comportamento muito estranho do loop `foreach`. Escrevi um código simples, mas os resultados me confundiram.
```php
1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
// Eu esperava que todos os valores dobrassem!
```
Eu pensei que `$value` era uma referência ao elemento do array, mas descobri que é uma cópia. Ok, então tentei usar `&`:
```php
2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) — funciona!
```
Mas depois li que fazer isso é perigoso, porque `$value` continua sendo uma referência ao último elemento após o loop. E também ouvi falar sobre "ponteiros internos do array" e que `foreach` não funciona tão simples quanto parece.
Alguém pode explicar como `foreach` processa o