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 Переменные формата правда/ложь.
* @param VarNotBoolAction $ifNotBool Действие, если какой-то аргумент expressions
не является булевым
* типом. По умолчанию игнорировать.
*
* @return bool Есть ли хотя бы одно в значении true.
*
*/
public static function AnyTrue (array $expressions, VarNotBoolAction $ifNotBool = VarNotBoolAction::Ignore): bool
{
return self::TrueCount($expressions, $ifNotBool) > 0;
}
/**
* Вычисляет количество переменных формата правда/ложь expressions
в значении true
.
*
* @param array $expressions Переменные формата правда/ложь.
* @param VarNotBoolAction $ifNotBool Действие, если какой-то аргумент expressions
не является булевым
* типом. По умолчанию игнорировать.
*
* @return int Количество переменных в значении true.
*/
public static function TrueCount (array $expressions, VarNotBoolAction $ifNotBool = VarNotBoolAction::Ignore): int
{
// Создаем пустой массив для хранения проверяемых аргументов
$checkArray = [];
// Проверяем все входящие аргументы
foreach ($expressions as $expression)
// - если аргумент не является типом правда/ложь
if (!is_bool($expression))
// -- то делаем следующее в зависимости от настроек:
switch ($ifNotBool) {
case VarNotBoolAction::Ignore:
// --- игнорируем аргумент
break;
case VarNotBoolAction::ConsiderItTrue:
// --- считаем аргумент как истинное значение
$checkArray[] = true;
break;
case VarNotBoolAction::ConsiderItFalse:
// --- считаем аргумент как ложное значение
$checkArray[] = false;
break;
}
else
// - иначе добавляем аргумент в массив проверяемых аргументов
$checkArray[] = $expression;
// Используем array_filter для фильтрации всех истинных значений
$filtered = array_filter($checkArray, fn ($value) => $value === true);
// Возвращаем количество элементов в отфильтрованном массиве
return count($filtered);
}
}