[PHP] Jak w PHP utworzyć wskaźnik i przekazać go do funkcji?

  • Post author:
  • Post category:PHP

W PHP nie ma „typowych wskaźników” jakie znamy np. z języka C++. PHP oferuje jednak mechanizm zbliżony, jeśli chodzi o końcowy efekt, do wskaźników a mianowicie mechanizm przekazywania zmiennych przez referencję,

Weźmy „na warsztat” np. tablice. Jak ją przekazać przez referencję? Aby ją przekazać do funkcji przez referencję, musisz użyć symbolu „&” zarówno przy definicji funkcji, jak i podczas jej wywoływania. Dzięki temu każda zmiana dokonana na tablicy wewnątrz funkcji będzie miała wpływ na oryginalną tablicę.

Ktoś spyta, jak to możliwe? Na tym właśnie polega referencja. To sposób odwoływania się do tej samej pamięci, która jest używana przez inną zmienną. Jeśli przekazujemy referencję jako argument funkcji to tak naprawdę operujemy na źródłowych (oryginalnych) wartościach.

Przykład przekazywania tablicy przez referencję do funkcji

Jak to będzie wyglądało w przeglądarce?

Poniżej kod do ewentualnego skopiowania.

<?php
// Definiowanie funkcji, która przyjmuje tablicę przez referencję
function dodajElementyDoTablicy(&$tablica) {
    $tablica[] = 'Nowy element 1';
    $tablica[] = 'Nowy element 2';
}

// Tworzenie tablicy
$mojaTablica = ['Element 1', 'Element 2'];

// Wyświetlenie tablicy przed przekazaniem do funkcji
echo "Tablica przed funkcją:\n";
print_r($mojaTablica);

// Przekazanie tablicy przez referencję do funkcji
dodajElementyDoTablicy($mojaTablica);

// Wyświetlenie tablicy po wykonaniu funkcji
echo "<br>Tablica po funkcji:\n";
print_r($mojaTablica);
?>