« ceil
cos »

clamp

(PHP 8 >= 8.6.0)

clamp — Return the given value if in range, else return the nearest bound

説明

function clamp(mixed $value, mixed $min, mixed $max): mixed

Return the given value if in range of min and max. Else if it's lower than min, return min. Else return max.

注意:

Values of different types will be compared using the standard comparison rules. For instance, a non-numeric string will be compared to an int as though it were 0, but multiple non-numeric string values will be compared alphanumerically. The actual value returned will be of the original type with no conversion applied.

警告

Be careful when passing arguments of different types because clamp() can produce unpredictable results.

パラメータ

value

Any comparable value to be clamped between min and max.

min

A comparable minimum to limit the value to.

max

A comparable maximum to limit the value to.

戻り値

clamp() returns the parameter value if considered "between" min and max according to standard comparisons.

If value is NAN, then the returned value will also be NAN.

エラー / 例外

If min is greater than max, clamp() throws a ValueError.

If min or max is NAN, clamp() throws a ValueError.

例

<?php
echo clamp(-5, min: 0, max: 100), PHP_EOL;  // 0
echo clamp(55, min: 0, max: 100), PHP_EOL;  // 55
echo clamp(103, min: 0, max: 100), PHP_EOL;  // 100

echo clamp("J", min: "A", max: "F"), PHP_EOL;  // "F"

clamp(
    new \DateTimeImmutable('2025-08-01'),
    min: new \DateTimeImmutable('2025-08-15'),
    max: new \DateTimeImmutable('2025-09-15'),
)->format('Y-m-d'), PHP_EOL; // 2025-08-15
?>

参考

  • min() - 最小値を返す
  • max() - 最大値を返す
関連キーワード:
clamp   return   Return   given   range   mixed   else   nearest   bound   compared   comparable   DateTimeImmutable   Else   different   types   standard   numeric   returned   between   limit   throws   ValueError   ceil   Math   lower
関連する関数・ページ:
function.cos   function.ceil   solrquery.getfacetdatestart   solrquery.settermsincludelowerbound   cubridmysql.cubrid   control-structures.else