![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 24.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw podam kod:
Klasa String:
Klasa Coment:
Odwołanie:
Zastosowałem tutaj IMHO brzydkie rozwiązanie z użyciem metody __call. Innym rozwiązaniem jest zastosowanie public $title. Wówczas odwoływalibyśmy się w ten sposób:
Czyli bez użycia title(). Jednak chyba nie jest to zbyt dobry pomysł ponieważ zmienna będzie publicznie dostępna, a takto mamy tylko dostęp do jej metod (title->set, title->length, etc.), więc nie można jej np. usunąć z zewnątrz. Żeby nie zakładać nowego tematu napiszę, że brakuje mi bardzo przeładowywania metod w taki oto sposób:
Jestem ciekaw jak sobie radzicie z tym problemem. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 16.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Z metodami __get() czy też może i __call() trzeba bardzo uważać. Ja kiedyś sobie przez __get() pobierałem moduły jądra i jakież moje zdziwienie było, kiedy pojawiały mi się błędy... Powód? Pobrany moduł przez __get() chciał pobrać inny moduł. Myślałem, że tak się da, a jednak PHP5(1) ma blokade na takie odwołania (ochrona przed zapętleniem).
(1) Było to kilka miesięcy temu, dopisałem się do innego zgłoszenia na bugtracku, nie wiem jak jest obecnie - warto wpierw sprawdzić to, zanim będzie się używać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 05:55 |