![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
buduje coś na wzór struktury słownika. Mam tam metodę do pobierania aktualnego elementu słownika. Elementy są typu String i mogą posiadać znaki specjalne jak ą, ś, ć Chce stworzyć metodę, która pozwoli na zwrócenie wyczyszczonej pozycji. Tą metodę mam. Chce jednak móc ją wywołać łańcuchowo. Tzn. $obiekt->getActual()->clear(); $obiekt->getActual() zwróci powiedzmy "źdźbło" chciałbym żeby $obiekt->getActual()->clear() zwróciło "zdzblo" jak zaprojektować obie te metody żeby to działało ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Metoda getActual() powinna Ci zwrócić obiekt klasy String (zakładam, że takową posiadasz). Dla wygody użytkowania klasa ta powinna implementować metodę __toString() zwracającą napis. Dodatkowo w niej powinieneś zawrzeć metodę clear(), która zwróci string/obiekt String (jak wolisz) bez polskich znaków.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
tak się spodziewałem. tylko teraz pytanie
czy wystarczy jak getActual() zrzutuje na Stringa ? tzn return (String)$item; czy trzeba tworzyć powłokę, która będzie symulowała. Metoda getActual() powinna Ci zwrócić obiekt klasy String (zakładam, że takową posiadasz). Dla wygody użytkowania klasa ta powinna implementować metodę __toString() zwracającą napis. Dodatkowo w niej powinieneś zawrzeć metodę clear(), która zwróci string/obiekt String (jak wolisz) bez polskich znaków. Dobra teraz rozumiem. Utworzenie klasy String i teraz śmiga idealnie. Dzięki wielkie ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 1 Dołączył: 10.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
W obiekcie string musisz umiescić magiczną metodę __toString(). Np:
public function __toString(){ return $this->text; } wtedy robisz np echo $string; |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:55 |