Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziedziczenie + __toString
symonides
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

Ostrzeżenie: (0%)
-----


Cześć, w klasie bazowej mam metodę display() i __toString obie mają robić to samo, czyli wyświetlić kod, w tym przypadku akurat HTML. W klasie która dziedziczy po bazowej jest właściwość _view, która jest użyta w powyższych metodach. Gdy chcę wyświetlić kod przy pomocy metody display() wszystko działa, niestety przy wywołaniu metody __toString dostaję następujący komunikat:
Kod
Method Editor_Elrte::__toString() must return a string value


Uproszczony kod klas wygląda następująco:

  1. abstract class Editor_Editor_Core
  2. {
  3. protected $_view;
  4.  
  5. abstract public function render();
  6.  
  7. public function display()
  8. {
  9. echo $this->_view;
  10. }
  11.  
  12. public function __toString()
  13. {
  14. return $this->_view;
  15. }
  16. }
  17.  
  18. class Editor_Elrte extends Editor_Editor_Core
  19. {
  20. public function render()
  21. {
  22. $this->_view = View::factory('elrte');
  23.  
  24. return $this;
  25. }
  26. }


Chciałbym, aby można było wyświetlić kod na dwa sposoby:
  1. $editor->render()->display();
  2. // albo
  3. echo $editor->render();


Pozdrawiam

EDIT: jeszcze taka ciekawostka. Poniższy kod działa prawidłowo.
Kod
echo $editor->render()->__toString();


Ten post edytował symonides 7.08.2011, 21:18:36
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 24.12.2025 - 16:09