Autor | Zpráva | ||
---|---|---|---|
MzM Profil * |
#1 · Zasláno: 4. 8. 2006, 14:54:17
Máte s tím někdo zkušenosti?
Zkusil jsem jednoduchý příklad: class b { var $bx; var $cnt = 0; function b() { $this->bx='toto je bx'; } function __set($name, $val) { $this->$name = $value; $this->cnt++; } } overload('b'); $x = new b(); $x->bx = 1; print_r($x); $x->bx = 10; print_r($x); očekával jsem, že se bude cnt zvětšovat, ale podle všeho se __set() vůbec nevolá. Něco podobného jsem zkoušel i v PHP5, tam mě ale php vyčetlo používání fce overload(), kterou vůbec nezná. Jak to má být správně? |
||
WanTo Profil |
#2 · Zasláno: 4. 8. 2006, 17:18:44
Funguje __get() a __set() v PHP4?
|
||
Anonymní Profil * |
#3 · Zasláno: 4. 8. 2006, 23:38:57
nie tieto funkcie su cisto PHP5 zalezitost
|
||
mila Profil |
#4 · Zasláno: 5. 8. 2006, 04:45:35
__get() a __set() funguje v php 5 docela dobře. Stačí se podívat do manuálu.
Co jsem slyšel (četl) tak v php4 jsou s tím jen problémy (a funguje úplně jinak). |
||
MzM Profil * |
#5 · Zasláno: 7. 8. 2006, 14:55:36
mě to v php5 nechodí, aspoň ne tento příklad. Mám tam něco špatně? Nebo co? Zkuste jednoduchý příklad, který funguje. Dík.
|
||
llook Profil |
#6 · Zasláno: 7. 8. 2006, 17:18:19
__set (a taky __get) se volá jenom pro nedefinované členské proměnné. bx je definovaná, takže se nevolá.
nie tieto funkcie su cisto PHP5 zalezitost To není pravda. V PHP4 pro ně existuje rozšíření a od jisté verze je dokonce standardně v instalaci. Ale za prvé jsou tam menší rozdíly v použití __call() oproti PHP5 a za druhé je to pořádně zabugovaný. |
||
mila Profil |
#7 · Zasláno: 7. 8. 2006, 18:20:24
mě to v php5 nechodí, aspoň ne tento příklad.
Psal jsem, že v php4 funguje úplně jinak. V php 5 se třeba vůbec nevolá overload. Stačí se podívat do manuálu do kapitoly oop5. |
||
MzM Profil * |
#8 · Zasláno: 8. 8. 2006, 07:49:35
mila, nj, omlouvám se, tuhle větu o tom, že se to volá jenom na neexistující proměnné, jsem přehlédl. Tím pádem se to hodí tak max na hlídání toho, jestli nepřiřazuju nějakou proměnnou, kterou nechci...
btw. mám taky php4 (4.4.0) a funguje to stejne... po volání overload() |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0