news 2026/6/16 6:55:05

PHP 8.6 新增 clamp() 函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP 8.6 新增 clamp() 函数

PHP 8.6 的 clamp() 函数可以把一个值限制在指定的最小值与最大值之间。

它的签名如下:

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

clamp() 接收三个参数:$value、$min、$max,然后判断 $value 是否在 $min 与 $max(包含边界)之间。

小于最小值:如果 $value 小于 $min,返回 $min。

大于最大值:如果 $value 大于 $max,返回 $max。

在范围内:如果 $value 位于 $min 与 $max 之间,返回 $value。

异常情况:如果 min > max,或者 min/max 为 NAN,会抛出 ValueError。

下面是一个最简单的示例:

$value1 = clamp(15, 10, 20); // 返回 15

$value2 = clamp(5, 10, 20); // 返回 10

$value3 = clamp(25, 10, 20); // 返回 20

小趣闻:很久以前我就写过一个自定义的 clamp 函数,当作项目里的工具函数来用。

使用命名参数的 clamp()

clamp() 配合命名参数会更直观,而且还能重新排序参数。

$brightness = clamp(min: 0, value: $brightness, max: 100);

真实场景用法

下面是一些 clamp() 的实用场景。

用户输入:把百分比限制在 0 到 100

$percentage = clamp($percentage, 0, 100);

UI 滑块:把音量限制在 0 到 10

$volume = clamp($volume, 0, 10);

分页:把页码限制在第一页与最后一页之间

$page = clamp((int)$_GET['page'] ?? 1, 1, $totalPages);

限流:避免突发请求数超过上限

$requests = clamp($requests, 0, $maxBurst);

日期:确保预订日期在允许窗口内

$date = new DateTimeImmutable($input);

$start = new DateTimeImmutable('2025-08-15');

$end = new DateTimeImmutable('2025-09-15');

$clamped = clamp($date, $start, $end); // 会按情况返回 start/end/date

几何:把角度限制在 0 到 90

$angle = clamp($angle, 0, 90);

字符串(按字典序):把标签限制在 “c” 到 “g”

$tag = clamp($tag, "c", "g");

总结

PHP 8.6 的 clamp() 函数虽然简单,但非常实用:它能帮你用一种更干净、清晰的方式对值进行边界约束。

无论你在处理用户输入、配置、UI 参数,还是任何需要把值限制在某个区间的场景,clamp() 都能让代码更直观。

想了解更多,可以阅读关于 clamp() 的 RFC。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 20:29:53

解密Prompt系列66. 视觉Token爆炸→DeepSeek-OCR光学压缩

着 DeepSeek-OCR这篇论文,本章我们来回顾下多模态大模型(VLM)的核心技术演进。很多人认为:图像Token的信息密度和效率远不如文本。但 DeepSeek-OCR的核心价值,就是用实践证明了这是一个伪命题。它通过一套巧妙的串行视…

作者头像 李华
网站建设 2026/6/15 3:31:50

Typst列表符号终极指南:从异常诊断到完美渲染

Typst列表符号终极指南:从异常诊断到完美渲染 【免费下载链接】typst A new markup-based typesetting system that is powerful and easy to learn. 项目地址: https://gitcode.com/GitHub_Trending/ty/typst 在使用Typst进行文档排版时,列表符号…

作者头像 李华
网站建设 2026/6/14 9:24:50

NetBox 自动化导入资产 - IP地址

简介本文章主要讲解使用orb-agent 扫描网络收集IP信息,通过Diode 摄取到NetBox。这两个工具都是NetBox官方的自动化发现产品,下面是示意图。------------------| orb-agent ||------------------|| 网络扫描/资产发现 |------------------|| grpc 通过NM…

作者头像 李华
网站建设 2026/6/15 18:43:22

远程管理效能革命:Quasar网络传输架构的深度优化策略

远程管理效能革命:Quasar网络传输架构的深度优化策略 【免费下载链接】Quasar Remote Administration Tool for Windows 项目地址: https://gitcode.com/gh_mirrors/qua/Quasar 在日益复杂的网络环境中,远程管理工具的性能表现直接决定了运维效率…

作者头像 李华