您如何最好编写一个min()在PHP中选择的函数,但忽略空值?
function minvar($var1,$var2) {
$min=min($var1,$var2);
return $min;
}
Run Code Online (Sandbox Code Playgroud)
我知道你可以用它来做if,但我认为会有更优雅的方式吗?
function($var1,$var2) {
return min($var1 ?: PHP_INT_MAX, $var2 ?: PHP_INT_MAX);
}
Run Code Online (Sandbox Code Playgroud)
请注意,它也将0视为"未定义".
更新:PHP_INT_MAX返回所有值为空时.在此实现中,它旨在,因为OP明确要求忽略空值.因此,当忽略所有值时,最小值实际上是总体最大值(以某种方式).我的主要目的是保持返回值的严格:当方法声明忽略空值时,它将是意外的,在某些情况下它仍然会返回null.
我想你可以用array_filter:
function($var1,$var2) {
$min=min(array_filter(array($var1,$var2)));
return $min;
}
Run Code Online (Sandbox Code Playgroud)
array_filter从数组中删除所有计算为boolean的项false.min然后从数组中获取最低项.请注意,0将被删除.