Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pytanie o optymalizacje
Forum PHP.pl > Forum > Przedszkole
pajaa1981
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.
yevaud
w tym konkretnym przypadku nie
pajaa1981
A jeśli mam takich funkcji bardzo dużo i to samo w skrypcie? Warto dodawać te unsety?
yevaud
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
Crozin
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
NEO.pl
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.
thek
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.