Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcje i referencje
Indeo
post 28.11.2006, 12:55:22
Post #1





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
Sedziwoj
post 28.11.2006, 12:59:12
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  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


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 10:57