复杂的PHP数学转换,在一行上

Jak*_*ake 1 php math

这就是我想要做的事情:

变量$input可以等于以下任何值:-2 -1 0 1 2

我需要处理这个输入,以便唯一可能的结果是-1,01.数字应该被转换到任何那些最接近,所以-2会变成-1,2就变成1,不过1,0-1都会保持原样.

我知道如何使用多行来实现这一点,但我确信有一些方法可以将一组计算嵌套在一起.

那有意义吗?如果我要澄清,请告诉我.

ifu*_*unk 8

如果您知道您肯定只会获得这些值,则可以使用:

<?php
$value = max(-1, min(1, $value));
?>
Run Code Online (Sandbox Code Playgroud)

我通常会将这些转换为整数表达式以防万一.

<?php
$value = max(-1, min(1, intval($value)));
?>
Run Code Online (Sandbox Code Playgroud)