ToString(); } /** * Преобразует строковое представление GUID в объект GUID. * * @param string $guid Строковое представление GUID. * * @return GUID Преобразует строковое представление GUID в объект GUID или GUID_EMPTY. */ public static function GUIDFromString (string $guid): GUID { return GUID::Parse($guid, true); } /** * Проверяет равенство двух GUID. * * @param GUID $guid1 GUID 1. * @param GUID $guid2 GUID 2. * * @return bool true, если GUID равны, false - иначе. */ public static function IsGUIDEqual (GUID $guid1, GUID $guid2): bool { return $guid1->IsEqualsTo($guid2); } /** * Преобразует объект перечисления в значение. * * @param BackedEnum $enum Перечисление. * * @return int Значение перечисления. */ public static function BackedEnumToInt (BackedEnum $enum): int { return $enum->value; } /** * * @param int $value Значение перечисления. * * @return BackedEnum Перечисление. */ public static function BackedEnumFromInt (int $value): BackedEnum { return BackedEnum::tryFrom($value); } /** * Сравнивает два значения перечисления. * * @param BackedEnum $enum1 Перечисление 1. * @param BackedEnum $enum2 Перечисление 2. * * @return bool true, если значения равны, false - иначе. */ public static function IsBackedEnumEqual (BackedEnum $enum1, BackedEnum $enum2): bool { return $enum1->value === $enum2->value; } /** * Преобразует логическое значение в целочисленное. * * @param bool $boolValue Значение. * * @return int Значение 0 или 1. */ public static function BoolToInt (bool $boolValue): int { return $boolValue ? 1 : 0; } /** * Преобразует целочисленное значение в логическое. * * @param int $value Значение 0 или 1. * * @return bool Логическое значение. */ public static function BoolFromInt (int $value): bool { return $value > 0; } /** * Сравнивает два логических значения. * * @param bool $bool1 Значение 1. * @param bool $bool2 Значение 2. * * @return bool true, если значения равны, false - иначе. */ public static function IsBoolEqual (bool $bool1, bool $bool2): bool { return ($bool1 == true && $bool2 == true) || ($bool1 == false && $bool2 == false); } /** * Преобразует массив в строку. * * @param array $array Массив. * * @return string Сериализованный массив. */ public static function ArrayToString (array $array): string { return serialize($array); } /** * Преобразует строковое представление массива в массив. * * @param string $value Строковое представление массива. * * @return array Массив. */ public static function ArrayFromString (string $value): array { return unserialize($value); } /** * Сравнивает два массива. * * @param array $array1 Массив 1. * @param array $array2 Массив 2. * * @return bool true, если значения равны, false - иначе. */ public static function IsArrayEqual (array $array1, array $array2): bool { // Получаем разницу между массивами $difference = array_diff($array1, $array2); // Если разница пуста, значит массивы равны return empty($difference); } }