Archiwum

Posty oznaczone ‘foreach’

Referencja w pętli foreach – bug który nie jest bugiem

1 lutego 2010 2 komentarze(y)

Weźmy pod lupę prostą pętle foreach w PHP, która zamienia we wszystkich elementach tablicy litery na duże:

$words = array('system', 'baza', 'telefon');
foreach ($words as &$item)
{
  $item = strtoupper($item);
}

Jak widać, kolejne elementy tablicy pobierane są po przez referencję, tj. tworzony jest wskaźnik na konkretny element a nie jego kopia w pamięci. Dlatego też, zmieniając w pętli zawartość zmiennej $item modyfikujemy pierwotną tablicę. W czym zatem tkwi problem?

Czytaj więcej…