![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam forumowiczow.
W swoim projekcie chcialem wykorzystac klasy Singleton. Nie chce jednak w kazdej z nich tworzyc osobno tego samego mechanizmu (czyli funkcji get_instance). Postanowilam napisac klase Singleton, a pozostale tworzyc w oparciu o nia. Niestety, pojawil sie problem. Klasa Singleton wyglada tak:
Pozniej pojawia sie jakas prosta klasa pochodna i wywolanie jej metody:
Oczywiscie ten kod zwroci blad: Fatal error: Call to undefined method Singleton::test() in test.php on line x i jest to zrozumiale. Problem tkwi w jednej linijce metody Singleton::GI(), a mianowicie:
Przez to metoda ta jest na sztywno przypisana do klasy Singleton, ktora w moim przypadku jest klasa czysto wirtualna, tzn chce, aby sluzyla jako podstawa dla innych klas. Moje pytanie brzmi: jak sprawic, aby tworzony byl obiekt nie klasy Singleton, ale klasy pochodnej od niej, na rzecz ktorej wywolywana jest metoda GI() ? Probowalem dostac sie do nazwy tej klasy dwojako: przez get_class() oraz __CLASS__. Niestety, zawsze zwracana jest klasa Singleton. Z gory dzieki za pomoc, pozdrawiam. Ten post edytował tompaw 7.11.2004, 13:04:21 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 01:17 |