Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wywołanie metody łańcuchowo, Projektowanie struktury danych
Fixus
post 2.06.2011, 09:51:50
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 ?
Go to the top of the page
+Quote Post
phpion
post 2.06.2011, 09:55:19
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.
Go to the top of the page
+Quote Post
Fixus
post 2.06.2011, 10:08:27
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.

Cytat(phpion @ 2.06.2011, 09:55:19 ) *
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 smile.gif
Go to the top of the page
+Quote Post
Mr Albert
post 2.06.2011, 10:08:58
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;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:55