Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Indirect modification of overloaded property
Forum PHP.pl > Forum > PHP
crocodillo
Witam.

  1. class t1 {
  2. private $dt=null;
  3. public function __get($n) {
  4. return $this->dt[$n];
  5. }
  6. public function __set($n,$v) {
  7. $this->dt[$n]=$v;
  8. }
  9. }
  10.  
  11. $t = new t1();
  12. $t->test = array(1,2,3);
  13. $t->test[]=10;

W tym przykładzie wyskakują błędy:
( ! ) SCREAM: Error suppression ignored for
( ! ) Notice: Indirect modification of overloaded property t1::$test has no effect in ... on line 13


Jest ktoś w stanie wytłumaczyć ten dokładny przypadek i czy można to jakoś rozwiązać?
no_face
A zmienna skladowa test Ty masz?
crocodillo
Dobra, rozwiązałem chyba ten problem poprzez zwracanie referencji.
  1. public function &__get($n) {...}


Cytat(no_face @ 11.11.2012, 17:25:58 ) *
A zmienna skladowa test Ty masz?

Poczytaj trochę o tzw. metodach magicznych.
nospor
Tu jest dyskusja o tym
http://mwop.net/blog/131-Overloading-array...-PHP-5.2.0.html
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.