clamp

(PHP 8 >= 8.6.0)

clamp — Retourne la valeur d'entrée si elle est comprise entre 2 bornes, sinon retourne la borne la plus proche

Description

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

Retourne la valeur d'entrée si elle est comprise entre min et max. Si elle est inférieure à min, retourne min. Sinon retourne max.

Note:

Les valeurs de différents types seront comparées en utilisant les règles de comparaison standard. Actuellement, une chaîne non numérique sera comparée à un entier, comme s'il s'agissait de la valeur 0, mais plusieurs chaîne de caractères non-numérique seront comparées de façon alphanumérique. La valeur actuelle retournée sera du même type que l'original et aucune conversion de type ne sera appliquée.

Attention

Soyez prudent lorsque vous passez des arguments avec des types différents, car clamp() peut produire des résultats imprévisibles.

Liste de paramètres

value

Toute valeur comparable à resserrer entre min et max.

min

Une valeur minimum comparable à laquelle contraindre value.

max

Une valeur maximum comparable à laquelle contraindre value.

Valeurs de retour

La fonction clamp() retourne le paramètre value s'il est considéré comme "entre" min et max suivant la comparaison standard. Si plusieurs valeurs de types différents sont évaluées comme étant égales (i.e. 0 et 'abc'), la première fournie à la fonction sera retournée.

Si value est NAN, alors la valeur de retour est également NAN.

Erreurs / Exceptions

Si min est supérieur à max, la fonction clamp() lance une ValueError.

Si min ou max est NAN, la fonction clamp() lance une ValueError.

Exemples

<?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
?>

Voir aussi

  • min() - La plus petite valeur
  • max() - La plus grande valeur