Hvordan slå sammen objekter i PHP

Hvordan slå sammen objekter i PHP
Selv om det ikke er noen innebygd funksjon, er det flere måter å slå sammen objekter i PHP. For eksempel kan det opprettes et nytt objekt ved å legge til egenskapene til to eller flere objekter ved hjelp av en loop. Alternativt kan de nødvendige objektene konverteres til matriser, som kan slås sammen ved å bruke Array_Merge () eller array_merge_recursively (), og deretter gjenopprettet til et objekt.

I denne opplæringen vil vi vise deg hvordan du bruker metodene ovenfor for å slå sammen objekter i PHP.

Eksempel 1: Slå sammen objekter ved hjelp av en for loop

For å følge denne opplæringen, oppretter du en PHP -fil med følgende skript. Her, an Regnskap Klasse er erklært. Regnskap inneholder en vise() Metode for å skrive ut de tildelte objektverdiene for klassen. Tollen Merge_Object () funksjon er erklært å slå sammen to objekter av Regnskap klasse ved hjelp av en for loop. To for løkker brukes til å slå sammen verdiene til objektene og lagre dem i et annet objekt av Regnskap klasse. De $ acc_obj1 objekt brukes til å tilordne tre eiendomsverdier for Regnskap klasse, og $ acc_obj2 Objekt brukes til å tilordne to eiendomsverdier. Disse variablene vil bli gitt som argumenter til Merge_Object () funksjon.

// definere klasse
Klassekonto
offentlig funksjonsdisplay ($ objekt)

ekko " Navn: "".$ objekt-> Navn.""
";
ekko " E -post: "".$ objekt-> e-post.""
";
ekko " Kontotype: "".$ objekt-> acc_type.""
";
ekko " Åpningsbalanse: "".$ objekt-> åpning_balanse.""
";
ekko " Nåværende saldo: "".$ objekt-> current_balance;


// definere funksjon for å slå sammen objekter
Funksjon Merge_Object ($ Object1, $ Object2)
// Lag et nytt objekt i klassen
$ Merge_Object = ny konto ();
// tilordne verdiene til det første objektet til nytt objekt
foreach ($ objekt1 som $ eiendom => $ verdi)
$ Merge_Object-> $ eiendom = $ verdi;

// Legg til verdiene til det andre objektet til nytt objekt
foreach ($ objekt2 som $ eiendom => $ verdi)
$ Merge_Object-> $ eiendom = $ verdi;

ekko " Verdiene til det sammenslåtte objektet:

";
// Ring funksjonen for å skrive ut verdiene til sammenslått objekt
$ Merge_Object-> Display ($ Merge_Object);

// Opprett det første objektet og tilordne eiendomsverdier
$ acc_obj1 = ny konto ();
$ acc_obj1-> name = "mahmudul ahsan";
$ acc_obj1-> e-post = "[email protected] ";
$ acc_obj1-> acc_type = "lagring";
// Opprett det andre objektet og tilordne eiendomsverdier
$ acc_obj2 = ny konto ();
$ acc_obj2-> åpning_balanse = 40000;
$ acc_obj2-> current_balance = 50000;
// Ring funksjonen for å slå sammen begge objektene
Merge_Object ($ acc_obj1, $ acc_obj2);
?>

Produksjon:

Følgende utdata vil bli produsert etter å ha kjørt skriptet ovenfor fra webserveren. Utgangen viser egenskapsverdiene til den sammenslåtte objektvariabelen.

Eksempel 2: Slå sammen objekter ved bruk av array_merge () -funksjonen

De Array_Merge () Funksjon brukes til å slå sammen to eller flere matriser. For å følge med dette eksemplet, oppretter du en PHP -fil med følgende skript. Her, The Regnskap Klasse brukes til å skrive ut verdiene til det sammenslåtte objektet. Gjenstandene $ acc_obj1 og $ acc_obj2 er opprettet i skriptet. Tre eiendomsverdier tilordnes ved hjelp av $ acc_obj1 og to eiendomsverdier tilordnes ved hjelp av $ acc_obj2. Disse to objektene blir konvertert til to matriser og ført som argumenter for Array_Merge () funksjon. Utgangen fra Array_Merge () Funksjon konverteres til et objekt for å oppnå $ Merge_Object. NESTE, $ Merge_Object blir gitt som et argument til vise() metode for Regnskap klasse.

// definere klasse
Klassekonto
offentlig funksjonsdisplay ($ objekt)

ekko " Navn: "".$ objekt-> Navn.""
";
ekko " E -post: "".$ objekt-> e-post.""
";
ekko " Kontotype: "".$ objekt-> acc_type.""
";
ekko " Åpningsbalanse: "".$ objekt-> åpning_balanse.""
";
ekko " Nåværende saldo: "".$ objekt-> current_balance;


// Opprett det første objektet og tilordne eiendomsverdier
$ acc_obj1 = ny konto ();
$ acc_obj1-> name = "Ferzana Rahman";
$ acc_obj1-> e-post = "[email protected] ";
$ acc_obj1-> acc_type = "strøm";
// Opprett det andre objektet og tilordne eiendomsverdier
$ acc_obj2 = ny konto ();
$ acc_obj2-> åpning_balanse = 500000;
$ acc_obj2-> current_balance = 450000;
// Slå sammen objektene ved hjelp av array_merge ()
$ Merge_Object = (Object) Array_Merge ((Array) $ acc_obj1, (array) $ acc_obj2);
ekko " Verdiene til det sammenslåtte objektet:

";
Foreach ($ Merge_Object som $ eiendom => $ verdi)
Echo $ eiendom. "=>". $ verdi. ""
";

?>

Produksjon:

Følgende utdata vil bli produsert ved å kjøre skriptet ovenfor fra webserveren. Utgangen viser egenskapsverdiene til den sammenslåtte objektvariabelen.

Eksempel 3: Slå sammen objekter ved bruk av array_merge_recursive () -funksjonen

Objekter kan også slås sammen ved å bruke den innebygde Array_Merge_Recursive () funksjon, som brukes til å slå sammen nestede matriser. Derfor, hvis noen matrise inneholder en annen matrise i den, vil denne funksjonen returnere en sammenslått matrise ved å slå sammen verdiene til den nestede matrisen.

For å følge med dette eksemplet, oppretter du en PHP -fil med følgende skript. Her en Student Klasse er definert for å returnere det sammenslåtte objektet ved å bruke Merge_Objects () metode. Gjenstandene $ obj1 og $ obj2 er erklært å lagre id og merker egenskaper. De merker Eiendom inneholder et annet objekt for lagring av verdiene til de andre egenskapene. NESTE, $ obj1 og $ obj2 blir gitt som argumenter til Merge_Objects (), som bruker Array_Merge_Recursive () funksjon.

// definere klassen
klasse student
// Slå sammen de to objektene ved hjelp av array_merge_recursive ()
offentlig funksjon Merge_Objects ($ Object1, $ Object2)

$ Obj1 = (array) $ objekt1;
$ Obj2 = (array) $ objekt2;
$ sammenslått = array_merge_recursive ($ obj1, $ obj2);
return (objekt) $ sammenslått;


// definere objektet for klassen
$ student = ny student ();
// erklære det første objektet
$ obj1 = (objekt) [
'id' => '423456',
'Merker' => (objekt) [
'CSE101' => 87
]
];
// erklære det andre objektet
$ obj2 = (objekt) [
'Merker' => (objekt) [
'CSE204' => 94,
'CSE306' => 75
]
];
// Ring funksjonen for å slå sammen det første og det andre objektet
$ Merged_Object = $ student-> Merge_Objects ($ obj1, $ obj2);
// Skriv ut verdiene til det sammenslåtte objektet
ekko "
";
print_r ($ fusjon_objekt);
ekko "
";
?>

Produksjon:

Følgende utdata vil bli produsert ved å kjøre skriptet ovenfor fra webserveren. Utgangen viser egenskapsverdiene til den sammenslåtte objektvariabelen.

Konklusjon

I denne opplæringen viser vi deg tre forskjellige måter å slå sammen objekter i PHP. I det første eksemplet blir objektene slått sammen ved å bruke en for loop, og i de to andre eksemplene brukes innebygde funksjoner for sammenslåing av matriser.