ifTrue, если выражение b правдиво и ifFalse в противном * случае. * * @param bool $b Выражение типа правда/ложь. * @param string $ifTrue Строка для правдивого выражения. По умолчанию "true". * @param string $ifFalse Строка для лживого выражения. По умолчанию "false". * * @return string Вывод строки. */ public static function ExportToString (bool $b, string $ifTrue = "true", string $ifFalse = "false"): string { return $b ? $ifTrue : $ifFalse; } /** * Вычисляет, есть ли хотя бы одно из переменных формата правда/ложь expressions в значении * true. * * @param array $expressions Переменные формата правда/ложь. * * @return bool Есть ли хотя бы одно в значении true. * * @throws Exception Выбрасывается, если хотя бы один аргумент expressions не являются типом * правда/ложь. */ public static function AnyTrue (array $expressions): bool { return self::TrueCount($expressions) > 0; } /** * Вычисляет количество переменных формата правда/ложь expressions в значении true. * * @param array $expressions Переменные формата правда/ложь. * * @return int Количество переменных в значении true. * * @throws Exception Выбрасывается, если хотя бы один аргумент expressions не являются типом * правда/ложь. */ public static function TrueCount (array $expressions): int { // Проверяем все аргументы foreach ($expressions as $expression) // - если аргумент не является типом правда/ложь if (!is_bool($expression)) // -- то выбрасываем исключение throw new Exception('All arguments must be bool. / Все аргументы должны быть типа «правда/ложь».'); // Используем array_filter для фильтрации всех истинных значений $filtered = array_filter($expressions); // Возвращаем количество элементов в отфильтрованном массиве return count($filtered); } }