![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, otóż aktualnie poznaje programowanie obiektowe, jednak nasuwa mi się pewne pytanie na które nie mogłem odnaleźć do tej pory odpowiedzi stąd moja wizyta tutaj.
Otóż analizując kod jakiejś tam strony zwróciłem uwagę na kilkukrotne wywołanie wskaźnika do funkcji -> I teraz chciałem zapytać jak i czy można zapisać tak klasę aby miała metody pokoloruj pogrub itd a następnie w wywołaniu użyć $text = new text(); $text->pokoloruj()->pogrub()->napis("witam"); Czy ktoś może mi podpowiedzieć jak napisać taką klasę ? Ten post edytował Nutri 12.12.2011, 09:08:30 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
po prostu każda z metod ma zwracać swój obiekt
.... return $this; i już. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
To może inaczej dlaczego to nie działa? Ten post edytował Nutri 12.12.2011, 09:20:42 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przecież napisałem wyraźnie: metoda ma zwracać return $this;
Widzisz u siebie gdzieś cos takiego? No własnie, i dlatego nie działa. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, teoretycznie mi to działa zamieniłem sobie na takie coś:
ale mam teraz pytanie, jezeli użyje tego : text->pokoloruj()->pogrub()->napis("witam")->ret(); // wyswietli tekst pomijając metody pokoloruj i pogrub Oczywiście wiem, dlaczego ( ponieważ nie ma żadnego stringa do pokolorowania ) a da sie pozniej tego stringa wkleić tak aby ta funkcja przyjmowała właśnie taką kolejność jaka jest podana? Ten post edytował Nutri 12.12.2011, 09:27:12 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A włączysz myślenie czy będziesz z każdym błędem tutaj leciał? Wklepanie treści błędu do Google'a, od razu nakieruje Cię na manual i bardzo jasny opis co wtedy zrobić: http://www.php.net/manual/en/language.oop5....magic.tostring
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 28.11.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ustawiasz napis po użyciu metod pokoloruj i pogrub, więc to raczej zła kolejność rzeczy. Przekaż napis chociażby w konstruktorze __construct.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ustawiasz napis po użyciu metod pokoloruj i pogrub, więc to raczej zła kolejność rzeczy. Przekaż napis chociażby w konstruktorze __construct. Tak napisałem, ze wiem jaki jest problem, ale czy istnieje jakaś prosta funkcja na wklejenie mojego stringa w środek? Bu chyba po pierwszych 2 metodach moj string przyjmuje wartość : <b><font color="red"></font></b> Ten post edytował Nutri 12.12.2011, 09:32:16 |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
$text->napis("witam")->pokoloruj()->pogrub()->ret();
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
$text->napis("witam")->pokoloruj()->pogrub()->ret(); Tak to też napisałem, jednak tak dla zaspokojenia ciekawości pytam was czy istnieje funkcja która będzie dodawała w środek aktualnego stringa? Wiem mniej więcej jak to zrobić za pomocą explode tylko, że będę musiał najpierw rozdzielić a następnie połączyć tabele |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Powinieneś trzymać tekst i jego style odseparowane od siebie:
Da Ci to możliwość nadpisywania wcześniej ustalonych stylów oraz rozdzieli różne elementy struktury od siebie. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje wszystko mi to wyjaśnia.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 19:40 |