Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wywołanie __get i __set przy pomocy tabel
Forum PHP.pl > Forum > Przedszkole
maf2
Witam,
Napisałem taki prosty kod i nie wiem jaki błąd w rozumowaniu robię.
Wiem, że __get jest wywoływane, gdy próbujesz pobierać wartość z nieistniejącego atrybutu a __set jest wywoływane, gdy próbujesz ustawiać wartość dla nieistniejącego atrybutu.
I nie rozumie dlaczego takie zapytanie $this->propertyTable['addressid'] = 2; nie powoduje wywołania set.
Proszę o jakiś prosty przykłada jak pracować z tablicami przy metodach __get() i __set()

  1. <?php
  2. abstract class foo {
  3.    
  4.    
  5.    protected $propertyTable = array();
  6.    
  7.  
  8.  
  9.  
  10. function __get($n) {
  11.        echo '<br>get: '.$n.'<br>';
  12.  
  13.    }
  14.    
  15.    function __set($n, $v) {
  16.        echo '<br>set: ';
  17.  
  18.  
  19.  
  20. }
  21. }
  22. class a extends foo{
  23.  
  24.  
  25.  
  26. public function __construct($b){
  27.    $this->propertyTable['addressid'] = 2;
  28.    
  29.    
  30.    }
  31.    }
  32.  
  33. $a = new a(2);
  34. ?>
Crozin
Proste. Ponieważ $this->propertyTable istenieje - to czy dalsze "etapy" też istnieją już nie ma znaczenia.
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.