Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Indirect modification of overloaded property
crocodillo
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
no_face
post
Post #2





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


A zmienna skladowa test Ty masz?
Go to the top of the page
+Quote Post
crocodillo
post
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 05:09