Я нахожу, что часто получаю функцию, которую я всегда называю "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, и либо выбросить исключение, либо отменить входы. Или вы можете игнорировать порядок входов и называть его медианой из трех функций, но это может ввести в заблуждение.