Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywołanie metody łańcuchowo
Forum PHP.pl > Forum > PHP
Fixus
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 ?
phpion
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.
Fixus
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
Mr Albert
W obiekcie string musisz umiescić magiczną metodę __toString(). Np:

public function __toString(){
return $this->text;
}

wtedy robisz np echo $string;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.