![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem, mam plik z funkcjami zarządzającymi sesją, w funkcjach wykorzystywany jest obiekt $db klasy DBSql, chodzi o to że obiekt ten jest widoczny w pliku, ale nie jest widoczny w funkcji, mimo zadeklarowania go:
Przez to cały czas dostaję błąd: Fatal error: Call to a member function query() on a non-object in /radioprosfera/greets/includes/session.php on line 41 Co może być przyczyną? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
1. Przenoszę na PHP. Jak ktoś korzysta z global to niech nie mówi że to jest programowanie obiektowe
![]() 2. Błąd, który dostajesz nie jest rezultatem braku widoczności tej zmiennej, tylko jest wynikiem tego że wykonujesz funkcję na czymś co nie jest obiektem. Gdzie tworzysz instancję klasy DBSql :?: |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko jest ok, w tym miejscu, tzn $db jest obiektem Następnie chcę go wykorzystać w funkcji
i tutaj dostaję infromację, że $db obiektem nie jest Ten post edytował amytych 29.07.2007, 22:14:43 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ten post nie będzie odpowiedzią na Twój problem, ale poradą jak można sobie poradzić z tym trochę bardziej obiektowo.
Możesz użyć wzorca singleton. Pisząc przykładowy kod rozszerzyłem klasę DBSql, ponieważ założyłem, że DBSql to jakaś gotowa klasa i wtedy nie musisz w niej grzebać. Oczywiście możesz dołączyć wzorzec singleton do DBSql bez jej rozszerzania.
W razie wątpliwości pytaj. Pozdrawiam. -------------------- Workspace: Ubuntu 8.04, PDT.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki za okazaną pomoc, ale w międzyczasie miałem możliwość przetestowania tego rozwiązania na innym serwerze (dokładnie na dwóch różnych) i tam wszystko było ok, tzn. $db w funkcji było obiektem, więc wydaje mi się, że problem chyba musi leżeć po stronie serwera, może jego konfiguracji, nie mam pojęcia...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:37 |