Хотя встроенной функции нет, в PHP есть несколько способов объединения объектов. Например, новый объект можно создать, добавив свойства двух или более объектов с помощью цикла. В качестве альтернативы требуемые объекты можно преобразовать в массивы, которые можно объединить с помощью array_merge() или array_merge_recursively(), а затем повторно преобразовать в объект.
В этой статье мы покажем вам, как использовать вышеуказанные методы для объединения объектов в PHP.
Чтобы следовать этому руководству, создайте файл PHP со следующим скриптом. Здесь объявлен класс Account. Account содержит метод display() для печати назначенных значений объекта класса. Объявлена настраиваемая функция Merge_Object() для объединения двух объектов класса Account с помощью цикла for. Два цикла for используются для объединения значений объектов и сохранения их в другом объекте класса Account. Объект $ acc_obj1 используется для назначения трех значений свойств класса Account, а объект $acc_obj2 используется для присвоения двух значений свойств. Эти переменные будут переданы в качестве аргументов функции Merge_Object().
//Определить класс
class Account {
public function display($object)
{
echo «<b> Имя: </b>».$object—>name.«<br />»;
echo «<b> Электронная почта: </b>».$object—>email.«<br />»;
echo «<b> Тип учетной записи: </b>».$object—>acc_type.«<br />»;
echo «<b> Начальное сальдо: </b>».$object—>openning_balance.«<br />»;
echo «<b> Текущее сальдо: </b>».$object—>current_balance;
}
}
// Определить функцию для объединения объектов
function Merge_Object($object1, $object2) {
// Создать новый объект класса
$merge_object = new Account();
// Присваиваем значения первого объекта новому объекту
foreach($object1 as $property => $value) {
$merge_object—>$property = $value;
}
// Добавляем значения второго объекта в новый объект
foreach($object2 as $property => $value) {
$merge_object—>$property = $value;
}
echo «<b> Значения объединенного объекта: </b><br/><br/>»;
// Вызов функции для печати значений объединенного объекта
$merge_object—>display($merge_object);
}
// Создаем первый объект и присваиваем значения свойствам
$acc_obj1 = new Account();
$acc_obj1—>name = » andreyex»;
$acc_obj1—>email = «andreyex@gmail.com»;
$acc_obj1—>acc_type = «Saving»;
// Создаем второй объект и присваиваем значения свойствам
$acc_obj2 = new Account();
$acc_obj2—>openning_balance = 40000;
$acc_obj2—>current_balance = 50000;
// Вызов функции для объединения обоих объектов
Merge_Object($acc_obj1, $acc_obj2);
?>
Вывод:
Следующий вывод будет произведен после запуска вышеуказанного скрипта с веб-сервера. В выходных данных отображаются значения свойств переменной объединенного объекта.
Функция array_merge() используется для объединения двух или более массивов. Чтобы следовать этому примеру, создайте файл PHP со следующим скриптом. Здесь класс Account используется для печати значений объединенного объекта. Объекты $ acc_obj1 и $ acc_obj2 создаются в сценарии. Три значения свойств назначаются с помощью $ acc_obj1, а два значения свойств назначаются с помощью $ acc_obj2. Эти два объекта преобразуются в два массива и передаются в качестве аргументов функции array_merge(). Выходные данные функции array_merge() преобразуются в объект для получения $ merge_object. Затем $merge_object передается в качестве аргумента методу display() класса Account.
//Определить класс
class Account {
public function display($object)
{
echo «<b> Имя: </b>».$object—>name.«<br />»;
echo «<b> Электронная почта: </b>».$object—>email.«<br />»;
echo «<b> Тип учетной записи: </b>».$object—>acc_type.«<br />»;
echo «<b> Начальное сальдо:</b>».$object—>openning_balance.«<br />»;
echo «<b> Текущее сальдо: </b>».$object—>current_balance;
}
}
// Создайте первый объект и назначьте значения свойств
$acc_obj1 = new Account();
$acc_obj1—>name = «Destroyer»;
$acc_obj1—>email = «Destroyer@gmail.com»;
$acc_obj1—>acc_type = «Current»;
//Создайте второй объект и назначьте значения свойств
$acc_obj2 = new Account();
$acc_obj2—>openning_balance = 500000;
$acc_obj2—>current_balance = 450000;
//Слияние объектов с помощью array_merge()
$merge_object = (object) array_merge((array) $acc_obj1, (array) $acc_obj2);
echo «<b> Значения объединенного объекта: </b><br/><br/>»;
foreach($merge_object as $property => $value) {
echo $property. » => «. $value. «<br/>»;
}
?>
Вывод:
Следующий результат будет получен при запуске вышеуказанного скрипта с веб-сервера. В выходных данных отображаются значения свойств переменной объединенного объекта.
Объекты также можно объединять с помощью встроенной функции array_merge_recursive(), которая используется для объединения вложенных массивов. Следовательно, если какой-либо массив содержит внутри себя другой массив, эта функция вернет объединенный массив путем объединения значений вложенного массива.
Чтобы следовать этому примеру, создайте файл PHP со следующим скриптом. Здесь определен класс Student, который возвращает объединенный объект с помощью метода Merge_Objects(). Объекты $ obj1 и $ obj2 объявлены для хранения свойств id и mark. Свойство mark содержит другой объект для хранения значений других свойств. Затем $ obj1 и $ obj2 передаются в качестве аргументов функции Merge_Objects(), которая использует функцию array_merge_recursive().
<?php
// Определите класс
class Student {
//Объедините два объекта с помощью array_merge_recursive()
public function Merge_Objects($object1, $object2)
{
$Obj1 = (array) $object1;
$Obj2 = (array) $object2;
$merged = array_merge_recursive($Obj1, $Obj2);
return (object) $merged;
}
}
// Определите объект класса
$student = new Student();
// Объявите первый объект
$obj1 = (object) [
‘id’ => ‘423456’,
‘marks’ => (object) [
‘CSE101’ => 87
]
];
// Объявите второй объект
$obj2 = (object) [
‘marks’ => (object) [
‘CSE204’ => 94,
‘CSE306’ => 75
]
];
// Вызовите функцию для слияния первого и второго объектов
$merged_object = $student—>Merge_Objects($obj1, $obj2);
//Печать значения объединенного объекта
echo «<pre>»;
print_r($merged_object);
echo «</pre>»;
?>
Вывод:
Следующий результат будет получен при запуске вышеуказанного скрипта с веб-сервера. В выходных данных отображаются значения свойств переменной объединенного объекта.
В этой статье мы покажем вам три различных способа объединения объектов в PHP. В первом примере объекты объединяются с помощью цикла for, а в двух других примерах используются встроенные функции для объединения массивов.