php - réinitialise / efface un objet?
Ce que j'essaie de faire est d'utiliser un objet temporaire pour stocker des valeurs et puis de le réinitialiser retour à vide sans avoir à uset($tmpObject); ?
Voici un exemple de code:
class Object {
function ResetObject(){
//code to remove all variables in an object here?
}
}
$tmpObject = new Object();
foreach ($myArray as $arr){
$tmpObject->val1 = "string1";
$tmpObject->val2 = "string2";
$tmpObject->val3 = "string3";
$tmpObject->val4 = "string4";
$template->set('tmpObject',$tmpObject);
$tmpObject->ResetObject();
}
Quelqu'un a des idées?
source d'informationauteur Joe | 2010-10-02
Vous devez vous connecter pour publier un commentaire.
Voir: Itération d'un objet
La accepté de répondre a un défaut mineur qui est que la suppression de une propriété en fait supprime complètement à partir de cet objet, de sorte qu'une vérification comme
$this->someProperty == null
pourrait déclencher une "propriété non définie" avis. Les propriétés ont la valeur null par défaut, donc ce serait plus correct:Il y a aussi la possibilité que certaines de ces propriétés pourrait avoir été donné valeurs par défaut (par exemple,
protected $someArray = array();
) ...si vous souhaitez réinitialiser toutes les propriétés de retour à leurs valeurs d'origine par défaut, alors vous devez utiliser la réflexion:Que peut-être exagéré, mais pourrait être important dans certains scénarios. Notez que ce serait un échec si la classe avait requis des arguments du constructeur; dans ce cas, vous pourriez utiliser ReflectionClass::newInstanceWithoutConstructor (introduit en PHP 5.4), puis d'appeler
__construct()
manuellement après l'appel deresetObject()
.Si votre classe a un constructeur qui initialise tout, alors vous pouvez simplement appeler de nouveau pour réinitialiser.
À la réinitialisation de la variable permettra de restaurer tous les membres de l'objet de leurs valeurs prédéfinies.
Sorties:
Une autre manière de combiner indéfini et défini avec la valeur par défaut.