我有一个这样的函数:
<?php
function keepInRange($n){
$min = 5;
$max = 15;
if ( $n < $min ) {
$res = $min;
} elseif ( $n > $max ) {
$res = $max;
} else {
$res = $n;
}
return $res;
}
Run Code Online (Sandbox Code Playgroud)
$min它总是返回和之间的数字$max。它也有效,但对我来说似乎不太专业。我认为它可以更好(没有这些条件)。知道如何让它更短更干净吗?
如果您试图使其更短(并且可能更清晰)并删除这些if语句,您可以使用max()andmin()函数:
function keepInRange($n){
$min = 5;
$max = 15;
return max(min($max, $n), $min);
}
Run Code Online (Sandbox Code Playgroud)
另外,正如 @admcfajn 提到的,您可以传递$min和$max作为参数以使函数更加灵活:
function keepInRange($n, $min = 5, $max = 15){
return max(min($max, $n), $min);
}
Run Code Online (Sandbox Code Playgroud)