Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> return clone.., ma dzialac czy nie?
SuperCube
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.11.2006

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


Jako nowo zarejestrowany user witam wszystkich!

Przerabiajac przyklady z ksiazki "PHP5 Obiekty, wzorce, narzedzia" natrafilem na przyklad ktory powinien dzialac, a jednak nie dziala :/
bardzo uproszczony skrypt oddajacy istote problemu:

  1. <?php
  2.  
  3.  class Fun 
  4.  {
  5.  function funa()
  6.  {
  7.  echo "aaa!n"; 
  8.  }
  9.  }
  10.  
  11.  class MyFun
  12.  {
  13.  private $fun;
  14.  
  15.  function _construct(Fun $fun)
  16.  {
  17.  $this->fun = $fun;
  18.  }
  19.  
  20.  function getFun()
  21.  {
  22.  echo "clonnn";
  23.  return clone $this->fun;
  24.  }
  25.  
  26.  }
  27.  
  28.  $mf = new MyFun(new Fun());
  29.  
  30.  $test1 = new Fun;
  31.  $test1->funa();
  32.  
  33.  $test2 = $mf->getFun();
  34. // $test2->funa();
  35.  
  36.  $test1->funa(); 
  37.  
  38. ?>


sprawa wyglada tak: do $test2 powinien byc przypisany clon objektu Fun, wiec wywolanie $test2->funa(); powinno wyswietlic kilka literek, jednak nic takiego sie nie dzieje, po odkomentowaniu $test2->funa(), nie dosc ze funkcja nie jest wywolana, to jeszcze nie wykonuje sie $test1->funa();
skrypt testowalem na serwerze z php 5.1.6 i 5.2.0 - php.ini bez wiekszych modyfikacji

Pozdrawiam,
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Policz ilosc "_" w konstruktorze biggrin.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
SuperCube
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.11.2006

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


o_O damn, you are the master ;D
dzieki za "oswiecenie" :-)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


chyba nie uzywales wyswietlania WSZYSTKICH bledow (error_reporting( E_ALL | E_STRICT )
bo u mnie pokazywalo blad ze wywoluje __clone() na nieobiekcie.


--------------------
Nie lubię jednorożców.
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 Aktualny czas: 21.08.2025 - 23:37