Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> $a->b()->c(); na jakiej zasadzie to działa
Spawnm
post
Post #1





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Witam,
pytanie jak w temacie , jak to działa?
myślałem że wystarczy
  1. <?php
  2. class a{
  3.  public function b(){
  4.  //...
  5.  }
  6.  
  7.  public function c(){
  8.  //...
  9.  }
  10. }
  11. $a=new a();
  12. $a->b()->c();
  13. ?>

jednak taki kod nie działa ...
Go to the top of the page
+Quote Post
-=Peter=-
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


  1. <?php
  2. class a{
  3. public function b(){
  4. //...
  5.   return $this;//metoda musi zwracać obiekt
  6. }
  7.  
  8. public function c(){
  9. //...
  10. }
  11. }
  12. $a=new a();
  13. $a->b()->c();
  14. ?>


Jak miało działać, jak metoda a::b() nic nie zwracała? :]

Temat: Jak_sie_nazywa_sposob_programowania
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Metoda "b" z obiektu $a musi zwrócić jakiś obiekt, który będzie posiadał metodę "c" - może to być on sam:
  1. <?php
  2. class ABC{
  3.  public function b(){
  4.    var_dump(__METHOD__);
  5.    return $this;
  6.  }
  7.  public function c(){
  8.    var_dump(__METHOD__);
  9.    return $this;
  10.  }
  11. }
  12.  
  13. $a = new ABC();
  14. $a->b()->c()->b()->c();
  15. ?>
  1. <?php
  2. class ABC{
  3.  public function b(){
  4.    return new DEF();
  5.  }
  6. }
  7.  
  8. class DEF{
  9.  public function c(){
  10.    var_dump(__METHOD__);
  11.  }
  12. }
  13.  
  14. $a = new ABC();
  15. $a->b()->c();
  16. ?>
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




bardzo dziękuje za udzielenie informacji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 6.10.2025 - 07:24