Aunque no hay una función incorporada, hay varias formas de fusionar objetos en PHP. Por ejemplo, se puede crear un nuevo objeto agregando las propiedades de dos o más objetos usando un bucle. Alternativamente, los objetos requeridos se pueden convertir en matrices, que se pueden fusionar utilizando
array_merge () o
array_merge_recursivamente (), y luego reconvertido a un objeto.
En este tutorial, le mostraremos cómo usar los métodos anteriores para fusionar objetos en PHP.
Ejemplo 1: Fusionar objetos usando un bucle for para
Para seguir este tutorial, cree un archivo PHP con el siguiente script. Aquí, un Cuenta la clase se declara. Cuenta contiene una mostrar() Método para imprimir los valores de objeto asignados de la clase. La costumbre Merge_Object () Se declara que la función fusiona dos objetos del Cuenta clase usando un bucle para. Se utilizan dos para bucles para fusionar los valores de los objetos y almacenarlos en otro objeto del Cuenta clase. El $ ACC_OBJ1 El objeto se usa para asignar tres valores de propiedad del Cuenta clase y el $ acc_obj2 El objeto se usa para asignar dos valores de propiedad. Estas variables se pasarán como argumentos al Merge_Object () función.
// Definir clase
cuenta de clase
pantalla de función pública ($ objeto)
eco "
Nombre: ".$ objeto-> nombre."
";
eco "
Correo electrónico: ".$ objeto-> correo electrónico."
";
eco "
Tipo de cuenta: ".$ objeto-> acc_type."
";
eco "
Balance de abertura: ".$ objeto-> abre_balance."
";
eco "
Saldo actual: ".$ objeto-> current_balance;
// Definir la función para fusionar objetos
función merge_object ($ object1, $ object2)
// crear un nuevo objeto de la clase
$ merge_object = new cuenta ();
// Asignar los valores del primer objeto en el nuevo objeto
foreach ($ object1 como $ propiedad => $ valor)
$ Merge_Object-> $ Property = $ value;
// Agregar los valores del segundo objeto en nuevo objeto
foreach ($ object2 como $ propiedad => $ valor)
$ Merge_Object-> $ Property = $ value;
eco "
Los valores del objeto fusionado: ";
// llamar a la función para imprimir los valores del objeto fusionado
$ merge_object-> display ($ merge_object);
// Crear el primer objeto y asignar valores de propiedad
$ acc_obj1 = nueva cuenta ();
$ acc_obj1-> name = "Mahmudul Ahsan";
$ acc_obj1-> email = "
[email protected] ";
$ acc_obj1-> acc_type = "guardar";
// Crear el segundo objeto y asignar valores de propiedad
$ acc_obj2 = nueva cuenta ();
$ ACC_OBJ2-> Openning_balance = 40000;
$ acc_obj2-> current_balance = 50000;
// llamar a la función para fusionar ambos objetos
Merge_object ($ acc_obj1, $ acc_obj2);
?>
Producción:
La siguiente salida se producirá después de ejecutar el script anterior desde el servidor web. La salida muestra los valores de propiedad de la variable de objeto fusionado.
Ejemplo 2: Fusionar objetos usando la función Array_Merge ()
El array_merge () la función se utiliza para fusionar dos o más matrices. Para seguir con este ejemplo, cree un archivo PHP con el siguiente script. Aquí el Cuenta La clase se usa para imprimir los valores del objeto fusionado. Los objetos $ ACC_OBJ1 y $ acc_obj2 se crean en el script. Se asignan tres valores de propiedad utilizando $ ACC_OBJ1 y se asignan dos valores de propiedad utilizando $ acc_obj2. Estos dos objetos se convierten en dos matrices y se pasan como argumentos del array_merge () función. La salida del array_merge () la función se convierte en un objeto para obtener $ merge_object. Próximo, $ merge_object se pasa como un argumento al mostrar() método del Cuenta clase.
// Definir clase
cuenta de clase
pantalla de función pública ($ objeto)
eco "
Nombre: ".$ objeto-> nombre."
";
eco "
Correo electrónico: ".$ objeto-> correo electrónico."
";
eco "
Tipo de cuenta: ".$ objeto-> acc_type."
";
eco "
Balance de abertura: ".$ objeto-> abre_balance."
";
eco "
Saldo actual: ".$ objeto-> current_balance;
// Crear el primer objeto y asignar valores de propiedad
$ acc_obj1 = nueva cuenta ();
$ acc_obj1-> name = "Ferzana Rahman";
$ ACC_OBJ1-> CORREO ELECH = "
[email protected] ";
$ acc_obj1-> acc_type = "actual";
// Crear el segundo objeto y asignar valores de propiedad
$ acc_obj2 = nueva cuenta ();
$ ACC_OBJ2-> Openning_Balance = 500000;
$ acc_obj2-> current_balance = 450000;
// fusionar los objetos usando array_merge ()
$ merge_object = (object) array_merge ((array) $ acc_obj1, (array) $ acc_obj2);
eco "
Los valores del objeto fusionado: ";
foreach ($ merge_object como $ propiedad => $ valor)
Echo $ propiedad. "=>". $ valor. "
";
?>
Producción:
La siguiente salida se producirá ejecutando el script anterior desde el servidor web. La salida muestra los valores de propiedad de la variable de objeto fusionado.
Ejemplo 3: Fusionar objetos usando la función Array_Merge_recursive ()
Los objetos también se pueden fusionar utilizando el incorporado array_merge_recursive () función, que se utiliza para fusionar matrices anidadas. Por lo tanto, si alguna matriz contiene otra matriz dentro de ella, esta función devolverá una matriz fusionada fusionando los valores de la matriz anidada.
Para seguir con este ejemplo, cree un archivo PHP con el siguiente script. Aquí un Alumno la clase se define para devolver el objeto fusionado utilizando el Merge_Objects () método. Los objetos $ obj1 y $ obj2 se declaran almacenar el identificación y marcas propiedades. El marcas La propiedad contiene otro objeto para almacenar los valores de las otras propiedades. Próximo, $ obj1 y $ obj2 se pasan como argumentos a Merge_Objects (), que usa el array_merge_recursive () función.
// Defina la clase
Estudiante de clase
// fusionar los dos objetos usando array_merge_recursive ()
Función pública Merge_Objects ($ Object1, $ Object2)
$ Obj1 = (matriz) $ object1;
$ Obj2 = (matriz) $ object2;
$ fused = array_merge_recursive ($ obj1, $ obj2);
return (objeto) $ fusionado;
// Defina el objeto de la clase
$ estudiante = nuevo estudiante ();
// Declarar el primer objeto
$ obj1 = (objeto) [
'id' => '423456',
'Marcas' => (objeto) [
'CSE101' => 87
]
];
// Declarar el segundo objeto
$ obj2 = (objeto) [
'Marcas' => (objeto) [
'CSE204' => 94,
'CSE306' => 75
]
];
// llame a la función para fusionar el primero y el segundo objetos
$ fused_object = $ student-> merge_objects ($ obj1, $ obj2);
// imprime los valores del objeto fusionado
eco "
";
print_r ($ fused_object);
eco "
";
?>
Producción:
La siguiente salida se producirá ejecutando el script anterior desde el servidor web. La salida muestra los valores de propiedad de la variable de objeto fusionado.
Conclusión
En este tutorial, le mostramos tres formas diferentes de fusionar objetos en PHP. En el primer ejemplo, los objetos se fusionan utilizando un bucle for, y en los otros dos ejemplos, se utilizan funciones incorporadas para fusionar matrices.