Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]__get i __set
Forum PHP.pl > Forum > Przedszkole
Gość
<?php
class klasa
{
function __get($nazwa)
{
return $this->$nazwa;
}

function __set($wartosc,$param)
{
echo $wartosc." ".$param;
}
}
$a = new klasa();
echo $a->4;
$a->atr = 4;

?>

dlaczego w tym przykładzie SET wyswietla //atr 4

a get wywala błą questionmark.gif
nexis
Poczytaj o przeciążaniu, a następnie przeanalizuj swój kod. Funkcje magiczne __get i __set pozwalają nadpisać domyślne zachowanie i tym samym możesz wprowadzić dodatkową funkcjonalność. Np. w poniższym przykładzie zmienna prywatna byłaby niedostępna, gdyby nie nadpisane metody __get i __set.
  1. <?php
  2. class klasa
  3. {
  4.   private $value;
  5.   function __construct()
  6.   {
  7.      $this->value = 'a';
  8.   }
  9.   function __get($key)
  10.   {
  11.      return $this->$key;
  12.   }
  13.   function __set($key, $value)
  14.   {
  15.      $this->{$key} = $value;  
  16.   }
  17. }
  18.  
  19. $a = new klasa();
  20. echo $a->value; // a
  21. $a->value = 'b';
  22. echo $a->value; // b
  23.  
  24. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.