Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zwracanie referencji do tablicy
Maksymus007
post 29.05.2007, 23:19:46
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 21.01.2007

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


Sprawa wygląda prosto smile.gif Mam funcje, która generuje mi dużą tablicę. Jeśli funkcja ja po prostu zwróci np.
  1. <?php
  2. return $tablica
  3. ?>
to zostanie ona skopiowana. A ja bym chciał tablicę sobie wygenerować i o ile wiem,że obiekty i zmienne w PHP istnieją do końca skryptu albo do unset() i zwrócić w funkcji referencje do owej tablicy. Zapis
  1. <?php
  2. $a = array('1', '2', '3');
  3. return &$a;
  4. ?>

daje mi syntax error - unexpected &;

Wiem, że są inne sposoby - że moge zadeklatować tablicę najpierw potem wysłać referencje do zmiennej.
Jednakże chodzi mi o dokładnie coś takiego.

A może za długo w C++ pisałem i mam zboczenia laugh.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
dr_bonzo
post 29.05.2007, 23:34:19
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


z tego co pamietam to:

  1. <?php
  2. function & doSth()
  3. {
  4. return $tablica
  5. }
  6. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Darti
post 29.05.2007, 23:34:20
Post #3





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  1. <?php
  2. function &jakas(){
  3. $a = array('1', '2', '3');
  4. return $a;
  5. }
  6.  
  7. print_r(jakas());
  8. ?>


Ten post edytował Darti 29.05.2007, 23:34:40


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
Maksymus007
post 29.05.2007, 23:42:03
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 21.01.2007

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


dzięki, nigdy bym na to nie wpadł laugh.gif
Go to the top of the page
+Quote Post
starach
post 30.05.2007, 01:01:41
Post #5





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Zaraz momencik a czy przypadkiem po wykonaniu funkcji i zwróceniu przez nią wyniku zmienne funkcji / metod nie są kasowane z pamięci ? ( chyba że się zastosuje static ) Jeśli nie są to muszę poprawić jakieś bagatela 20 metod hyhy
Go to the top of the page
+Quote Post
Cysiaczek
post 30.05.2007, 08:15:13
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




  1. <?php
  2. function &znajdz_zmienna ($param)
  3. {
  4. /* ...kod... */
  5. return $znaleziona_zmienna;
  6. }
  7.  
  8. $foo =& znajdz_zmienna ($bar);
  9. $foo->x = 2;
  10. ?>


Notatka: Inaczej niż przy przekazywaniu parametrów, tutaj musisz używać & w obu miejscach - by wskazać, że zwracasz przez-referencję, a nie kopię jak normalnie, i by zwrócić uwagę, że dla zmiennej $foo powinno być użyte powiązanie przez referencję, a nie zwykłe przypisanie.

--edit
Sorka za rozjechanie forum : >

Ten post edytował Cysiaczek 30.05.2007, 08:22:21


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
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: 14.08.2025 - 04:32