Fusion efficace d'objets PHP
Lorsque vous travaillez avec des objets PHP5 qui ne présentent pas de relations d'héritage, la fusion de leur contenu peut être un défi. Les solutions traditionnelles basées sur les sous-classes sont inapplicables dans ce scénario.
Énoncé du problème
Considérez les objets suivants :
$objectA->a; $objectA->b; $objectB->c; $objectB->d;
L'objectif est d'obtenir un troisième objet, $objectC, qui contient toutes les propriétés de $objectA et $objectB.
$objectC->a; $objectC->b; $objectC->c; $objectC->d;
Solution
La méthode la plus efficace pour fusionner des objets est de les convertir en tableaux à l'aide de (array), puis de les fusionner à l'aide de array_merge() . Le tableau fusionné peut ensuite être reconverti en un objet en utilisant (object) :
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
Cette technique fonctionne efficacement même si les objets ont des méthodes, comme testé dans PHP 5.3 et 5.6.
Remarques
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!