Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja __get
ksiadz
post 3.08.2004, 10:57:18
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 24.11.2003

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


Witam
Po przeskoczeniu z php4 na "piatke" i dokladnemu przestudiowaniu mowych mozliwosci ( nie bylo tego za wiele dry.gif ) dostrzeglem pewne niejasnosci z ktorymi nie moge sie uporac dry.gif min. z funkcja __get w klasie. Przypuscmy ze mam taki oto kod
  1. <?php
  2.  
  3. class test
  4. {
  5.  public $n = &#092;"tekst\";
  6.  public $x = array( 'a' => 1, 'b' => 2, 'c' => 3 );
  7.  
  8.  
  9.  function __get( $var )
  10.  {
  11. print &#092;"pobieranie $this->$var<br />\";
  12.  
  13. if( isset( $this->$var ) )
  14. {
  15.  $r = $this->$var;
  16.  print &#092;"zwracanie: $r<br />\";
  17.  return $r;
  18. }
  19. else
  20. {
  21.  print &#092;"blad!<br />\";
  22. }
  23.  }  
  24. }
  25.  
  26. $foo = new test();
  27. $foo->n;
  28. ?>

Przypuszczalem ze wynikiem takiego kodu bedzie po prostu:
Kod
pobieranie $this->n
zwracanie: tekst

ale tak nie jest :/ - funkcja __get jest wywolywana tylko wtedy gdy nastapi proba pobrania niezdefiniowanej zmiennej np $this->zmienna czego wynikiem bedzie
Kod
pobieranie $this->zmienna
blad!

wiec moje pytanie brzmi dlaczego? czy cos w kodzie jest zle napisane?


--------------------
If you can't find a program that does what you want it to do, then write your own.
Go to the top of the page
+Quote Post
Ozzy
post 6.08.2004, 17:11:31
Post #2





Grupa: Zarejestrowani
Postów: 204
Pomógł: 0
Dołączył: 26.12.2003
Skąd: Rzeszów

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


Zmienna $n istnieje, a _get wywoływane jest tylko wtedy gdy zmienna NIE istnieje.
Go to the top of the page
+Quote Post
ksiadz
post 6.08.2004, 18:28:58
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 24.11.2003

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


Cytat(Ozzy @ 2004-08-06 18:11:31)
Zmienna $n istnieje, a _get wywoływane jest tylko wtedy gdy zmienna NIE istnieje.

no i wszystko jasne - z mojego zrodla wiedzy nic nie bylo wspominane ze __get jest wywolywane tylko wtedy gdy zmienna NIE istnieje dlatego nie wiedzialem co robie zle winksmiley.jpg, BIG THX


--------------------
If you can't find a program that does what you want it to do, then write your own.
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 Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:43