Avatar ·

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