![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Moze niektorym to pytanie wyda sie głupie i banalne, niemniej jednak jest mi potrzebne.
Z benchmarka mojego wynika ze tworząc system języków, stosując tablicę asocjacyjną zamiast stałych jest 2 -3 razy szybciej. Stosując indeksy cyfrowe jest jeszcze szybciej. Jest to ok. 10-20% czasu wykonywania skryptu. Niemniej jednak, jeśli stworzę tablicę asocjacyjną to za każdym razem w każdej metodzie gdzie chce uzyc jezyka bede musial pisac global $langs. Dostęp do tablicy przez singleton jeszcze bardziej mija sie z celem gdyż wyjdzie jeszcze wolniej niż stałe. Mozna (bez uzycia register_globals) utworzyc sobie tablicę superglobalną jak $_POST? bylaby bardzo wygodna w uzyciu. zamiast pisac: global $langs; new Label($langs['pobieranie_danych']); pisałbym sobie new Label($langs['pobieranie_danych']); |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Prawdę mówiąc jeżeli chcesz mieć dostęp globalny do jakiejś zmiennej, to albo global, albo singleton. Jest jeszcze zmienna superglobalna: http://www.php.net/manual/pl/reserved.variables.globals.php do której możesz wrzucić dane, tyle że tak czy inaczej, wciąż te dane są globalne, co to za różnica czy użyjesz global, czy wrzucisz to do jakiejś globalnej zmiennej? Zawsze możesz przekazywać takie dane poprzez parametr, a jeżeli ci to nie odpowiada, to z trzech rozwiązań (global, globals, singleton) z tego wszystkiego najlepszy chyba będzie singleton. Chodź ręki uciąć sobie nie dam (IMG:style_emoticons/default/wink.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 12:00 |