Я нахожу, что часто получаю функцию, которую я всегда называю "clamp()
", что является комбинацией min()
и max()
. Существует ли стандартное "каноническое" имя для этой функции?
Он всегда выглядит примерно так:
function clamp($val, $lower, $upper)
{
if ($val < $lower)
return $lower;
else if ($val > $upper)
return $upper;
else
return $val;
}
Или просто используя встроенные функции min()
и max()
:
function clamp($val, $lower, $upper)
{
return max($lower, min($upper, $val));
}
Существуют вариации: вы также можете проверить недопустимый ввод, где lower > upper
, и либо выбросить исключение, либо отменить входы. Или вы можете игнорировать порядок входов и называть его медианой из трех функций, но это может ввести в заблуждение.