![]() |
![]() ![]() |
![]() |
![]()
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 ? |
|
|
![]()
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.
-------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
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ę...
|
|
|
![]()
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).
-------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
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ę. -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 08:05 |