Ajouter des propriétés à l'objet stdClass à partir d'un autre objet
Je voudrais être en mesure de faire ce qui suit:
$obj = new stdClass;
$obj->status = "success";
$obj2 = new stdClass;
$obj2->message = "OK";
Comment puis-je prolonger $obj de sorte qu'il contient les propriétés de $obj2, par exemple:
$obj->status //"success"
$obj->message //"OK"
Je sais que je pourrais utiliser un tableau, ajouter toutes les propriétés de la matrice et ensuite coulé que vers l'objet, mais est-il une façon plus élégante, quelque chose comme ceci:
étendre($obj, $obj2); //ajoute toutes les propriétés de $obj2 $obj
Merci!
OriginalL'auteur Florin | 2010-04-16
Vous devez vous connecter pour publier un commentaire.
Ce n'est plus le long des lignes de la manière que vous ne voulez pas le faire....
Cependant, je pense que ce serait un peu mieux que d'avoir à effectuer une itération sur les propriétés.
OriginalL'auteur Chris Gutierrez
si l'objet est l'instance de stdClass (dans votre cas), il vous suffit d'étendre votre objet comme...
.... et autant que vous le souhaitez.
OriginalL'auteur Mohit Mehta
Vous pouvez utiliser get_object_vars() sur l'un des
stdClass
objet, itérer à travers ceux-ci, et les ajouter à l'autre:Ne sais pas si vous avais juge que les plus élégants, vous l'esprit.
Edit: Si vous n'êtes pas avare sur le fait d' stockage au même endroit, prendre un coup d'oeil à cette réponse à une question très semblable.
Absolument. Donc ne pas être sûr que ce serait la classe comme "plus élégant'. Jette peut-être laid, mais ils ne sont pas vraiment assez laid. 🙂
OriginalL'auteur pinkgothic
ont un coup d'oeil à l'objet de clonage http://php.net/manual/en/language.oop5.cloning.php
OriginalL'auteur pinaki