Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
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.


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
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).


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
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ę.


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
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 Aktualny czas: 22.08.2025 - 08:05