![]() |
![]() |
![]() ![]()
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: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
To jest raczej feature, ale nadal bardzo uciazliwy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Cytat It is worth noting that the __toString method will only be called when it is directly combined with echo() or print(). --Manual Cytat Ciekawi mnie kwestia kropki i przecinka. Gdy jest kropka php nie wykonuje metody __toString(), a gdy przecinek wykonuje. Gdy zastosujemy przecinek to czy Przy echo, gdy rozdzielasz argumenty (echo to nie funkcja) przecinkiem, kazdy z argumentow jest wypisywany osobno -- __toString() zadziala, a przy laczeniu stringow kropka __toStrint() nie jest uruchamiane. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 11:07 |