Ma vyznam pouzivat destruktor
- David Matějka
- Moderator | 6445
destruktor je vhodny napriklad k ukonceni spojeni, odemceni zamku, ulozeni stavu apod
Editoval matej21 (13. 2. 2014 12:22)
- Retrox
- Člen | 11
Tomu rozumím, ale primárně významově slouži k uvolnění alokované paměti v jiných programovacích jazycích. Proto se ptám zda má při tvorbě třídy ma význam destruktor vytvářet. Například pro tento příklad:
<?php
class A {
private xx;
public function __construct(){
}
public function __desctruct(){
unset($this->xx);
}
}
?>
Chápu využití destruktoru pro vyvolání jiných akcí při zániku objektu. Mně jde primárně o to uvolňování paměti a podobné věci ne o vyvolávání akcí až tak s objektem nesouvisející protože se dají řešit jinak.
- Retrox
- Člen | 11
Ano souhlasím, ale pokud se začneme bavit o úlohách které běží napřiklad 2 hodiny tak nakládání s pamětí a její uvolňování hraje význam. Zatím jsem nezaznamenal, že by garbage collector efektivně zafungoval. Jedná se mně o tento typ úloh, ale možná řeším hloupost protože odpověď může být na snadě php není vhodné pro tento druh úloh.
- David Matějka
- Moderator | 6445
tak to hledej reseni jinde nez v destruktoru. kratce: kdyz na objekt (nebo i jinou hodnotu) nevede zadna reference (nedrzi se v zadne promenne), dojde k uvolneni pameti. problem je, ze nektere sluzby/tridy si v drzeji v sobe jiny objekty, aniz bys o tom nutne vedel nebo to chtel, – prikladem je treba UoW v doctrine