【发布时间】:2011-06-29 02:26:34
【问题描述】:
有没有办法在不执行这些冗余代码的情况下测试范围:
if ($int>$min && $int<$max)
?
像一个函数:
function testRange($int,$min,$max){
return ($min<$int && $int<$max);
}
用法:
if (testRange($int,$min,$max))
?
PHP有这样的内置函数吗?或者有其他方法吗?
【问题讨论】:
-
使用
in_array()和range()有一种可怕的方式。除此之外,我不认为有一个 -
你为什么称它为“冗余代码”?这是必须评估的,不是吗?
-
确实如此。原始快速、可读的代码中哪一点是多余的,究竟是什么?谁会知道只是读取对您的 testRange() 的调用 testRange(1, 1, 2) 是对还是错?
-
我认为他指的是必须在条件中指定相同的变量两次。虽然我同意让你说
if($int between $min and $max)的语言结构会很好,但恐怕我见过的唯一语言是 SQL。 -
@Yes 就我个人而言,我认为使用函数会引入更多出错的可能性——例如,有可能以错误的顺序获取参数。另外,您是否想添加另一个函数来比较 ($int >= $min && $int