Autor | Zpráva | ||
---|---|---|---|
koudi Profil |
#1 · Zasláno: 7. 12. 2006, 17:19:40
Dá se napsat třídě taková metoda, která zruší danou instanci? Nechci použít unset($object), rád bych použil něco jako $object->destroy(). Při rušení objektu bych totiž rád proved ještě nějaké operace.
Ano, mohl bych použít __destruct() a obyčejné unset, ale rád bych to dělal způsobem popsaným výše :). |
||
ernesto Profil * |
#2 · Zasláno: 7. 12. 2006, 18:51:01
no a co je teda špatnýho na
__destruct() { // kód kterej chceš provést } ? |
||
medden Profil * |
#3 · Zasláno: 7. 12. 2006, 18:56:17
Možno keby si napísal prečo to chceš takto spraviť tak by sme ti vedeli lepšie poradiť
|
||
ernesto Profil * |
#4 · Zasláno: 7. 12. 2006, 19:09:43
musíš to udělat buď tak jak sem napsal (objekt sám sebe svojí metodou nemůže zrušit), pak prostě dáš do kódu
$_rusena_instance=NULL a je to (ještě podotknu, že sem vyvěštil, že ti de o PHP5) |
||
koudi Profil |
#5 · Zasláno: 7. 12. 2006, 19:26:31
no a co je teda špatnýho na
Nic, ale prostě se ptám, jestli i jiná možnost. objekt sám sebe svojí metodou nemůže zrušit Může, ale neni to nic moc.
ještě podotknu, že sem vyvěštil, že ti de o PHP5 Jelikož php4 destruktory nemá, tak máš pravdu ;-) |
||
ernesto Profil * |
#6 · Zasláno: 7. 12. 2006, 20:37:38
no vidíš, jak to máš zmáknutý, tahle možnost mě sice napadla, ale humpolácky sem jí zavrhnul bez testu :D
líp to ale fakt asi už nepude - leda že by sis udělal nějakou jinou classu speciálně na ničení objektů a podle toho jakou instanci bys dal nějaký její metodě bys provedl nějakej ten kód. jediná rádoby výhoda by byla v tom, že bys měl všechny fake destruktory pokupě a třeba bys tam mohl mít pokupě i věci ci se stanou po destrukci a ne jenom před ní. a na unset pozor, ale to ty určitě víš |
||
koudi Profil |
#7 · Zasláno: 7. 12. 2006, 21:00:34
no vidíš, jak to máš zmáknutý, tahle možnost mě sice napadla, ale humpolácky sem jí zavrhnul bez testu :D
Byla v manuálu. Ale moc se mi nelíbí. Ale to je fuk, prostě použiju $obj = null a bude. Ale jedna věc mě překvapila. Když zavolám destruktor ($obj->__destruct()), tak to co je v něm, tak se sice provede, ale objekt se nezruší. V zásadě je to jasný, ale nečekal sem to :) |
||
ernesto Profil * |
#8 · Zasláno: 7. 12. 2006, 21:44:20
mě PHPko vobčas taky něčim překvapí, sem zvědavej jak budeme překvapený až bude ostrá šestka
|
||
H13 Profil |
#9 · Zasláno: 8. 12. 2006, 23:37:45
Jsem oop začátečník a zajímalo by mě, proč se ruší instance...prostě jsem na to ještě v žádným příkladu nenarazil, díky
|
||
souki Profil |
#10 · Zasláno: 9. 12. 2006, 11:42:10
H13
třeba když máš objekt uložený v session a používáš pro přihlášení uživatele... při odhlášení ho zrušíš |
||
ernesto Profil * |
#11 · Zasláno: 10. 12. 2006, 15:07:09
no já nevim, ale pokud máš v session objekt v session, tak při běhu skriptu je to OK, ale pak bys ho měl stejně před skončením skriptu serializovat. no to je fuk, ale lepší příklad je spíš ten, že pokud děláš nějakou složitou aplikaci, kterou používá hodně lidí a v ní sou velký objekty, tak je dost rozumný objekt kterej už nepoužíváš zrušit. stejně tak uvolňovat všechny DB resources atd. zrychlení je pak víc než znatelný.
|
||
souki Profil |
#12 · Zasláno: 10. 12. 2006, 15:14:15
pak bys ho měl stejně před skončením skriptu serializovat
záleží na nastavení serveru. Mě se např objekty v session serializují samy... jak kdy.. |
||
ernesto Profil * |
#13 · Zasláno: 10. 12. 2006, 15:57:21
je to možný, tak do hloubky sem se o to nezajímal, v práci máme beztak na všech projektech svojí session. každopádně při použití vestavěný session na freehostingu (a nejenom co se týče session) nespolíhat se na nastavení php.ini, ale všecho si důkladně ošetřit. může to bejt sice zbytečný, ale pokud nemáš pod kontrolou ten server, tak ti nikdo nezaručí, že admin ze dne na den bez varování něco nepřenastaví.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0