Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.07.2009 Ostrzeżenie: (0%)
|
Witam,
Tworzę na własne potrzeby rdzeń do obsługi bazy. Plik dołączany jest przez require_once. Na samym początku deklaruje zmienną $db i w funkcjach create_connection i close_connection wskazuje, że jest to zmienna globalna. W pliku, w którym dołączyłem wywołuje kolejno create_connection i następnie close_connection. Druga nie ma w ogóle informacji o stworzonym w pierwszej obiekcie. W XDebugu widzę, że jest to obiekt null, czyli global nie działa. Poczytałem trochę o zakresach i przyznam, ze nadal nie mogę dojść dlaczego tak się dzieje. Gdy używam $GLOBALS['db'] wszystko działa. Bardzo prosiłbym o wyjaśnienie dlaczego tak się dzieje.
Ten post edytował rorschach 10.07.2009, 08:39:48 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%)
|
zrezygnuj ze zmiennych globalnych - łątwo je możesz zastąpić tworząc jakąś klasę statyczną/ lub klasę ze zmiennymi statycznymi i odwołując się do jej zmiennych - będziesz mógł do nich odwołać się w każdym miejscu swojego skryptu... przykąłdowa prosta klasa:
Kod class dane{ static $ile=0; } i aby się odwołać do tej zmiennej wystarczy napisać dane::$ile - tą zmienną również możesz zmieniać itd... widzę, że kożystasz z klas ale to z wbudowanych w php - po mału np. zastępując zmienną globalną jakimiś kalsami będziesz się przestawiał na inne myślenie raczej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ... a rozwiązywanie problemów w clasach nieraz jest znacznie wygodniejsze - choć w sumie to zbiur funkcji i zmiennych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
|
rorschach [PHP]Zmienne globalne 10.07.2009, 08:38:12
rorschach Taki mały singleton to w sumie fajna sprawa, ale p... 10.07.2009, 09:56:41
fifi209 Cytat(rorschach @ 10.07.2009, 09:56:4... 10.07.2009, 10:05:27 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 08:31 |