Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja __get
ksiadz
post
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

Posty w temacie
- ksiadz   Funkcja __get   3.08.2004, 10:57:18
- - Ozzy   Zmienna $n istnieje, a _get wywoływane jest t...   6.08.2004, 17:11:31
- - ksiadz   Cytat(Ozzy @ 2004-08-06 18:11:31)Zmienna ...   6.08.2004, 18:28:58


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 - 15:47