Dana jest tablica o nazwie tab wypełniona liczbami całkowitymi różnymi od zera. Przedstawiony kod zapisany w języku PHP ma za zadanie
foreach ($tab as &$liczba) $liczba = $liczba * (-1); unset($liczba);
$liczba jest referencją do kolejnych elementów, więc każdy dostaje własną, przeciwną wartość.&$liczba sprawia, że mnożenie przez -1 odwraca znak każdego elementu tablicy.Pytanie z egzaminu CKE, styczeń 2016 (arkusz E.14-X-16.01).
Pętla foreach przechodzi po wszystkich elementach tablicy $tab. Znak & przed $liczba oznacza, że zmienna jest referencją do bieżącego elementu, a nie jego kopią - przypisanie do $liczba zmienia więc wartość w samej tablicy. Mnożenie przez -1 odwraca znak: 5 staje się -5, a -3 staje się 3. Po pętli tablica zawiera te same liczby z przeciwnymi znakami. Wywołanie unset($liczba) usuwa referencję po zakończeniu pętli, żeby przypadkowe przypisanie do $liczba w dalszej części skryptu nie nadpisało ostatniego elementu. Do zapamiętania: bez & pętla foreach pracuje na kopiach i tablica pozostałaby bez zmian.
Wybór iloczynu wynika zwykle z widoku mnożenia w kodzie. Iloczyn wymagałby jednak zmiennej pomocniczej, np. $iloczyn = 1, i mnożenia jej przez kolejne elementy, a tu każdy element jest mnożony tylko przez -1. Wartość bezwzględna zamieniłaby liczby ujemne na dodatnie, a dodatnie zostawiła bez zmian; tymczasem po wykonaniu kodu 5 zmieni się w -5, więc liczb ujemnych przybędzie. Do tego służyłaby funkcja abs(). Zdanie o zamianie elementów na wartość zmiennej $liczba myli kierunek przypisania: to $liczba jest referencją do elementu, a nie odwrotnie, i każdy element dostaje własną, przeciwną wartość. Kod odwraca więc znak każdej liczby w tablicy. Warto sprawdzić to na przykładzie: tablica z liczbami 2, -7 i 4 po wykonaniu kodu zawiera -2, 7 i -4, czyli każdy element zmienił znak, a żadna liczba nie zniknęła.