J'ai une classe qui contient un tableau d'objets et a des méthodes pour renvoyer un objet de ce tableau par référence. Il existe également une méthode pour supprimer un objet du tableau.Désactiver la variable à la référence dans php
Cependant, si j'ai une variable qui fait référence à un objet du tableau, et que cet élément n'est pas défini, la variable a toujours une référence. Que dois-je faire dans la méthode remove qui détruira définitivement cet objet, y compris les références à celui-ci.
class myClass
{
public $objectList = array();
public function __construct()
{
$objectList[] = new myObject();
}
public function &getObjectByReference()
{
return $this->objectList[0];
}
public function removeObject()
{
unset($this->objectList[0]);
}
}
$myClass = new myClass();
$referencedObject = $myClass->getObjectByReference();
// this can now use the methods from myObject
$myClass-> removeObject();
// supposed to delete the object from memory. However $referencedObject is still
// able to use all the methods from myObject.
donc c'est le problème que j'ai, je dois être en mesure de retirer du tableau et supprimer l'objet de la mémoire si les variables qui font référence à cet objet ne sont plus utilisables.
J'ai essayé de le faire de cette façon, mais lorsque j'appelle print_r ($ referencedObject), il affiche toujours toutes ses variables membres pour qu'il ne puisse pas disparaître? – wiggles