首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中是否存在"clamp“number函数?

PHP中是否存在"clamp“number函数?
EN

Stack Overflow用户
提问于 2013-07-16 05:49:48
回答 2查看 10.7K关注 0票数 10

我用PHP编写了一个函数来“钳制”数字,但是我想知道这个函数是否在语言中就存在。

我阅读了数学部分的PHP.net文档,但我找不到它。

基本上,我的函数接受一个变量、一个可能值的数组和一个默认值,这是我的函数的签名:

代码语言:javascript
复制
function clamp_number($value, $possible_values, $default_value)

如果$value与任何$possible_values都不匹配,则其缺省值为$default_value

我认为如果PHP已经在本地提供了函数,我的函数会更快,因为我在程序中经常使用它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-16 05:51:04

代码语言:javascript
复制
$value = in_array($value, $possible_values) ? $value : $default_value;
票数 6
EN

Stack Overflow用户

发布于 2016-02-17 01:11:21

看起来你只是想在一个集合中找到一个数字。一个实际的钳位函数将确保一个数字在2个数字内(一个下限和一个上限)。所以psudo代码将是clamp(55, 1, 10)将产生10clamp(-15, 1, 10)将产生1,而clamp(7, 1, 10)将产生7。我知道你在寻找更多的in_array方法,但对于那些从谷歌来的人来说,这里是你如何在不创建函数(或将其转换为函数)的情况下使用PHP的方法。

代码语言:javascript
复制
max($min, min($max, $current))

例如:

代码语言:javascript
复制
$min = 1;
$max = 10;
$current = 55;
$clamped = max($min, min($max, $current));
// $clamped is now == 10

一种简单的钳制方法是:

代码语言:javascript
复制
function clamp($current, $min, $max) {
    return max($min, min($max, $current));
}
票数 54
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17664565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档