Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcje i referencje
Forum PHP.pl > Forum > Przedszkole
Indeo
Mam nastepujący problem. Mam funkcję której jako argument przekazuję przez referencje tablicę.
Następnie chcę fragment tej tablicy referencyjnie zwrócić. I tu jest problem bo zmienna która przechwytuje wywołanie funkcji ma sie nijak do wyjściowej tablicy (jej zmiany nie zmieniaja danych w tablicy)
podczas gdy jesli przypisze jej referencyjnie fragment tablicy bez uzycia funkcji - działa.

Wygląda to w uproszczeniu tak:
  1. <?php
  2. $x=array(
  3. 1=>'Ilona',
  4. 2=>'Tomek'
  5. );
  6.  
  7. function test(&$arg){
  8. return $arg[1];
  9. }
  10.  
  11. $y=&test($x);
  12. //bo jeśli dam:
  13. //$y=&$x[1];//to działa
  14. $y='Tomek';
  15.  
  16. echo "x[1]=$x[1]; y=$y";
  17. //zwraca x[1]=Ilona; y=Tomek
  18. //a chciałbym x[1]=Tomek; y=Tomek
  19. ?>


Już mam! smile.gif

Wystarczyło przed nazwą funkcji dać ampersand & smile.gif

  1. <?php
  2. function &test(&$arg){
  3. return $arg[1];
  4. }
  5. ?>
Sedziwoj
  1. <?php
  2. $x=array(
  3. 1=>'Ilona',
  4. 2=>'Tomek'
  5. );
  6.  
  7. function &test(&$arg){
  8. return $arg[1];
  9. }
  10.  
  11. $y=&test($x);
  12. //bo jeśli dam:
  13. //$y=&$x[1];//to działa
  14. $y='Tomek';
  15.  
  16. echo "x[1]=$x[1]; y=$y";
  17. //zwraca x[1]=Ilona; y=Tomek
  18. //a chciałbym x[1]=Tomek; y=Tomek
  19. ?>


Nop, że zwraca też referencje biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.