Autor Zpráva
error414-
Profil *
potreboval bych znicit objekt.

kdyz si vytvorim instanci objeku
$obj = new obf();

tak a ted ho bych chtel ten objek znicit

unlik($obj) nejde

settype($obj, 'null') taky ne
StandaF
Profil
Smazano
thingwath
Profil
Ty způsoby ,mazání` objektu jsou nesmyslné. Mělo by stačit zrušit na něj všechny reference. Čiliže zkus nastavit $obj = null;
thingwath
Profil
Ale těžko v tomhle případě říct, kdy ten objekt bude zničen... To už záleží na PHP.
error414-
Profil *
thingwath
rekl bych ze jsou logicke

ta prvni metoda zrusi referneci na nej

a ta druha je v manualu. ale asi pro PHP4

ja myslel ze kdyz objet nepotrebju tak ho mohu dostat z pameti. Pri odstranovani se pak zalova metoda destruct.
Pokud odstranim reference musim volat metodu destruct manualne coz je blbe.
error414-
Profil *
unlik($obj) nejde sem myslel unset()
thingwath
Profil
O PHP4 se předpokládám nebavíme.

PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as C++. The destructor method will be called as soon as all references to a particular object are removed or when the object is explicitly destroyed.

Chápu to tak, že zrušení reference by mělo zrušit objekt, ale nevím jestli to bude hned (obecně v jazycích kde to takto funguje nebývá nikým a nijak zaručeno, kdy ke zničení objektu dojde).
Anonymní
Profil *
thingwath
jo to je moc hezke ale proc se pri zruseni referenci nezavola metoda __destruct?
Anonymní
Profil *
trida je tu http://helper.error414.com/viewtopic.php?p=134#134
thingwath
Profil

<?
class nejaka_trida {
function __construct () {
echo "tato trida byla vytvorena";
}

function __destruct () {
echo "tato trida byla zrusena";
}

function foo () {
echo "volam nejakou metodu";
}
}

$a = new nejaka_trida ();
$a->foo ();
$a = 0;
sleep (10);
?>


Vypíše všechny tři hlášky (včetně tato trida byla zrusena) a pak teprve čeká těch deset sekund. PHP 5.1.4
error414-
Profil *
tak sem na to prisel, objetk se me nenici protoze sem zapomel na jednu referenci ktera je ve staticke promene $willCreate

pak to funguje

diky thingwath
Toto téma je uzamčeno. Odpověď nelze zaslat.

0