<?php namespace goodboyalex\php_components_pack\traits\ObjectArray; use goodboyalex\php_components_pack\classes\ObjectArray; /** * Часть кода класса ObjectArray, отвечающая за специальные функции. * * @author Александр Бабаев * @package php_components_pack * @version 1.0 * @since 1.0 */ trait ObjectArraySpecialTrait { /** * Очищает массив объектов, хранящийся в данном классе. * * @return void */ public function Clear (): void { // Очищаем массив unset($this->Container); // Создаем новый массив $this->Container = []; } /** * Добавляет объект в массив объектов, хранящийся в данном классе (аналогично добавлению элемента в массив с * помощью []). * * @param mixed $object Объект, который будет добавлен в массив объектов, хранящийся в данном классе. * * @return void */ public function Add (mixed $object): void { $this->Container[] = $object; } /** * Добавляет массив объектов (или объекты, заданные с помощью array) в массив объектов, хранящийся в данном классе. * * @param ObjectArray|array $objects Массив объектов, которые будут добавлены в массив объектов. * * @return void */ public function AddRange (ObjectArray|array $objects): void { // Если передан массив, то не изменяем его, а если передан объект класса ObjectArray, то конвертируем его в массив объектов $objectsToAdd = is_array($objects) ? $objects : $objects->ToArray(); // Добавляем массив объектов $this->Merge($objectsToAdd); } /** * Возвращает массив объектов, хранящихся в данном классе. * * @return array Массив объектов, хранящихся в данном классе. */ public function ToArray (): array { return $this->Container; } /** * Объединяет массив объектов, хранящийся в данном классе, с массивом объектов, переданным в качестве параметра. * * @param array $objects Массив объектов, который будет объединен с массивом объектов, хранящимся в данном классе. * * @return void */ public function Merge (array $objects): void { $this->Container = array_merge($this->Container, $objects); } }