Comment fusionner les objets en php

Comment fusionner les objets en php
Bien qu'il n'y ait pas de fonction intégrée, il existe plusieurs façons de fusionner des objets en php. Par exemple, un nouvel objet peut être créé en ajoutant les propriétés de deux objets ou plus à l'aide d'une boucle. Alternativement, les objets requis peuvent être convertis en tableaux, qui peuvent être fusionnés en utilisant array_merge () ou array_merge_recursively (), puis reconverti en un objet.

Dans ce tutoriel, nous vous montrerons comment utiliser les méthodes ci-dessus pour fusionner les objets en PHP.

Exemple 1: fusionner les objets à l'aide d'une boucle pour

Pour suivre ce tutoriel, créez un fichier PHP avec le script suivant. Ici, un Compte La classe est déclarée. Compte contient un afficher() Méthode pour imprimer les valeurs d'objet attribuées de la classe. La douane Merge_Object () La fonction est déclarée fusionner deux objets du Compte classe en utilisant une boucle pour. Deux pour les boucles sont utilisées pour fusionner les valeurs des objets et les stocker dans un autre objet du Compte classe. Le $ acc_obj1 L'objet est utilisé pour attribuer trois valeurs de propriété du Compte classe, et le $ acc_obj2 L'objet est utilisé pour attribuer deux valeurs de propriété. Ces variables seront adoptées comme arguments au Merge_Object () fonction.

// définir la classe
Class Account
Affichage de la fonction publique ($ objet)

écho " Nom: ".$ objet-> nom."
"
écho " E-mail: ".$ objet-> e-mail."
"
écho " Type de compte: ".$ objet-> acc_type."
"
écho " Équilibre d'ouverture: ".$ objet-> opening_balance."
"
écho " Solde actuel: ".$ object-> current_balance;


// définir la fonction pour fusionner les objets
fonction fusion_object ($ object1, $ object2)
// Créer un nouvel objet de la classe
$ merge_object = nouveau compte ();
// attribue les valeurs du premier objet dans un nouvel objet
foreach ($ object1 comme $ property => $ value)
$ Merge_Object -> $ Property = $ valeur;

// ajoute les valeurs du deuxième objet dans un nouvel objet
foreach ($ object2 comme $ property => $ value)
$ Merge_Object -> $ Property = $ valeur;

écho " Les valeurs de l'objet fusionné:

"
// appelle la fonction pour imprimer les valeurs de l'objet fusionné
$ merge_object-> affichage ($ merge_object);

// Créez le premier objet et attribuez des valeurs de propriété
$ acc_obj1 = nouveau compte ();
$ acc_obj1-> name = "Mahmudul ahsan";
$ acc_obj1-> email = "ahsan @ gmail.com ";
$ acc_obj1-> acc_type = "Saving";
// Créez le deuxième objet et attribuez des valeurs de propriété
$ acc_obj2 = nouveau compte ();
$ acc_obj2-> opening_balance = 40000;
$ acc_obj2-> current_balance = 50000;
// appelle la fonction pour fusionner les deux objets
Merge_Object ($ acc_obj1, $ acc_obj2);
?>

Sortir:

La sortie suivante sera produite après avoir exécuté le script ci-dessus à partir du serveur Web. La sortie montre les valeurs de propriété de la variable d'objet fusionné.

Exemple 2: Fusion d'objets à l'aide de la fonction array_merge ()

Le array_merge () La fonction est utilisée pour fusionner deux tableaux ou plus. Pour suivre cet exemple, créez un fichier PHP avec le script suivant. Ici le Compte La classe est utilisée pour imprimer les valeurs de l'objet fusionné. Les objets $ acc_obj1 et $ acc_obj2 sont créés dans le script. Trois valeurs de propriété sont attribuées en utilisant $ acc_obj1 et deux valeurs de propriété sont affectées en utilisant $ acc_obj2. Ces deux objets sont convertis en deux tableaux et passés comme arguments du array_merge () fonction. La sortie du array_merge () La fonction est convertie en un objet pour obtenir $ merge_object. Suivant, $ merge_object est passé comme un argument au afficher() Méthode de la Compte classe.

// définir la classe
Class Account
Affichage de la fonction publique ($ objet)

écho " Nom: ".$ objet-> nom."
"
écho " E-mail: ".$ objet-> e-mail."
"
écho " Type de compte: ".$ objet-> acc_type."
"
écho " Équilibre d'ouverture: ".$ objet-> opening_balance."
"
écho " Solde actuel: ".$ object-> current_balance;


// Créez le premier objet et attribuez des valeurs de propriété
$ acc_obj1 = nouveau compte ();
$ acc_obj1-> name = "Ferzana Rahman";
$ acc_obj1-> email = "ferzana @ gmail.com ";
$ acc_obj1-> acc_type = "current";
// Créez le deuxième objet et attribuez des valeurs de propriété
$ acc_obj2 = nouveau compte ();
$ acc_obj2-> opening_balance = 500000;
$ acc_obj2-> current_balance = 450000;
// fusionne les objets en utilisant array_merge ()
$ merge_object = (objet) array_merge ((array) $ acc_obj1, (array) $ acc_obj2);
écho " Les valeurs de l'objet fusionné:

"
foreach ($ merge_object as $ property => $ value)
Echo $ propriété. "=>". $ valeur. "
"

?>

Sortir:

La sortie suivante sera produite en exécutant le script ci-dessus à partir du serveur Web. La sortie montre les valeurs de propriété de la variable d'objet fusionné.

Exemple 3: Fusion d'objets à l'aide de la fonction array_merge_recursive ()

Les objets peuvent également être fusionnés en utilisant le array_merge_recursive () fonction, qui est utilisée pour fusionner les tableaux imbriqués. Par conséquent, si un tableau contient un autre tableau à l'intérieur, alors cette fonction renverra un tableau fusionné en fusionnant les valeurs du tableau imbriqué.

Pour suivre cet exemple, créez un fichier PHP avec le script suivant. Voici un Étudiant La classe est définie pour retourner l'objet fusionné en utilisant le Merge_Objects () méthode. Les objets $ obj1 et $ obj2 sont déclarés stocker le identifiant et Des marques propriétés. Le Des marques la propriété contient un autre objet pour stocker les valeurs des autres propriétés. Suivant, $ obj1 et $ obj2 sont passés comme arguments à Merge_Objects (), qui utilise le array_merge_recursive () fonction.

// définir la classe
classe étudiante
// fusionne les deux objets en utilisant array_merge_recursive ()
Fonction publique Merge_Objects ($ Object1, $ object2)

$ Obj1 = (array) $ object1;
$ Obj2 = (array) $ object2;
$ fusion = array_merge_recursive ($ obj1, $ obj2);
retour (objet) $ fusionné;


// définir l'objet de la classe
$ Student = New Student ();
// déclare le premier objet
$ obj1 = (objet) [
'id' => '423456',
'marks' => (objet) [
'CSE101' => 87
]]
]]
// déclare le deuxième objet
$ obj2 = (objet) [
'marks' => (objet) [
'CSE204' => 94,
'CSE306' => 75
]]
]]
// appelle la fonction pour fusionner le premier et les deuxième objets
$ fusion_object = $ étudiant-> Merge_Objects ($ obj1, $ obj2);
// imprime les valeurs de l'objet fusionné
écho "
"
print_r ($ Merged_Object);
écho "
"
?>

Sortir:

La sortie suivante sera produite en exécutant le script ci-dessus à partir du serveur Web. La sortie montre les valeurs de propriété de la variable d'objet fusionné.

Conclusion

Dans ce tutoriel, nous vous montrons trois façons différentes de fusionner des objets en php. Dans le premier exemple, les objets sont fusionnés en utilisant une boucle pour une boucle, et dans les deux autres exemples, des fonctions intégrées pour la fusion de tableaux sont utilisés.