Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Pytanie o optymalizacje
pajaa1981
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Witam,

mam pytanie, jeśli mamy np. taką funkcję

  1. function test () {
  2. $cos = jakas_funkcja_ktora_zwraca_tablice();
  3. return $cos[123];
  4. }


To jeśli dodam na końcu unset($cos) to będzie to bardziej optymalne i odciąży serwer? Dzięki.
Go to the top of the page
+Quote Post
yevaud
post
Post #2





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


w tym konkretnym przypadku nie
Go to the top of the page
+Quote Post
pajaa1981
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


A jeśli mam takich funkcji bardzo dużo i to samo w skrypcie? Warto dodawać te unsety?
Go to the top of the page
+Quote Post
yevaud
post
Post #4





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


unsety warto dodawac tam gdzie spelniaja swoja role smile.gif nie wazne ile bedziesz mial takich funkcji jak ta, unsety nawet jesli cos zmienia to niewiele.

http://stackoverflow.com/questions/584960/...set-or-var-null
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


No i gdzie chcesz dać ten unset niby? Przed "return" sprawi, że funkcja nie będzie mogła zwrócić wyników, po "return" nie zostanie nigdy odpalone.

Do poczytania: http://pl.php.net/manual/en/features.gc.php
Go to the top of the page
+Quote Post
NEO.pl
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


Cytat(Crozin @ 29.03.2011, 19:00:08 ) *
No i gdzie chcesz dać ten unset niby? Przed "return" sprawi, że funkcja nie będzie mogła zwrócić wyników, po "return" nie zostanie nigdy odpalone.


A kiedy to return sie "odpala"? Jak najbardziej zostanie wykonany, tyle ze nie bedzie mial co zwracac, a to dwie zasadniczo rozne rzeczy.
Go to the top of the page
+Quote Post
thek
post
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




NEO.pl... Chyba sobie żartujesz smile.gif Return zawsze zwraca wartość w takim wypadku do bloku wyżej. Jeśli to funkcja to zwróci ją do instancji wywołującej, jeśli to główny program to zakończy on działanie, bo oznacza, że zwrot nastąpił do interpretera wink.gif A ten zareaguje zwróceniem komunikatu zależnego od wartości. Przykładowo w C/C++ jeśli w głównym programie gdzieś pośrodku dasz return 0 to w tym miejscu się program zakończy z komunikatem, że wszystko OK biggrin.gif Ale jeśli dasz return 1 lub inną wartość to dostaniesz inne sygnały.

Poza tym wywołanie nawet return bez wartości to także koniec samo return; jest bowiem równoznaczne z return 0;

Dlatego Crozin MA rację. Wszystko po return w funkcji zostanie zignorowane. Natomiast powinien ruszyć wtedy do działania Garbage Collector i samoistnie usunąć z pamięci zmienne lokalne dla funkcji, która się zakończyła. Musisz zapoznać się lepiej z zasięgiem zmiennych i GC neo.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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: 20.08.2025 - 09:22