Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> duzy obiekt zwracany przez funkcję.
salat
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.02.2004
Skąd: Tychy

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


Zastanawiam się jak jest lepiej zwracać duży obiekt przez funkcję. Czy przy pomocy argumentu funkcji, podanego przez referencję, czy przy pomocy rezultatu zwracanego przez referencje.

No bo która metoda może zużywać więcej zasobów. Gdy utworzę obiekt przed wywołaniem funkcji i podam go jako argument aktualny (przez referencję oczywiście) a funkcja w jakiś tam sposób będzie sobie na nim operować. Czy gdy utworzę obiekt w ciele funkcji, a jako rezultat zwróce referencję do tego obiektu.

jak myślicie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
rzseattle
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Tak czy siak bedziesz mosial stworzyc nowa instancje i czy odbedzie sie to w ciele funkcji czy przed nia nie powinno miec znaczenia, przeciez jest to zmienna globalna i i tak znajduje sie glownym stosie a nie stosie rowijanym i zwijanym przez funkcje.
Go to the top of the page
+Quote Post
salat
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.02.2004
Skąd: Tychy

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


No właśnie jest to zmienna globalna, ale w sytuacji, gdy jest podawana jako parametr, bo jeśli jest tworzona w ciele funkcji (nie jest na liście jej parametrów), to jest umieszczana na "stosie funkcji" i w momencie, gdy zwracamy ją przez referencję to musi zostać przeniesiona (w jakiś sposób) na stos główy. Czyli jednak lepiej jest tworzyć przed wywołaniem funkcji i posłać jako parametr. Chyba że się mylę...
Go to the top of the page
+Quote Post
rzseattle
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Jesli zadeklarujesz zmienna funkcji jako globala to jeden kit czy utworzysz obiekt w samej funkcji czy przed nia. I tak miejsce dla zmiennej bedzie na stosie glownym ($GLOBALS).
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #5





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Tworzenie referencji w argumencie funkcji lub zwracanie referencji z funkcji
jest dosyć czasochłonne co wpływa na wydajność aplikacji.
Deklaracja zmiennej jako globals, tworzy alias klucza w tablicy $GLOBALS i bezpośrednio wskazuje na niego.
Jeśli zależy Ci na wydajności osobiście polecam tą metodę.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.12.2025 - 23:15