PHP:如何确定变量的值是否介于两个不同的常量值之间?

Gab*_*ono 24 php if-statement between intervals

我如何确定使用PHP代码,例如,我有一个具有值的变量

  • 在1到10之间,或
  • 在20到40之间?

Dan*_*ite 57

if (($value > 1 && $value < 10) || ($value > 20 && $value < 40))
Run Code Online (Sandbox Code Playgroud)

  • @VikingBlooded喜欢英语的模糊性和一个错误 (5认同)

Rya*_*yan 18

你的意思是:

$val1 = rand( 1, 10 ); // gives one integer between 1 and 10
$val2 = rand( 20, 40 ) ; // gives one integer between 20 and 40
Run Code Online (Sandbox Code Playgroud)

也许:

$range = range( 1, 10 ); // gives array( 1, 2, ..., 10 );
$range2 = range( 20, 40 ); // gives array( 20, 21, ..., 40 );
Run Code Online (Sandbox Code Playgroud)

或者可能:

$truth1 = $val >= 1 && $val <= 10; // true if 1 <= x <= 10
$truth2 = $val >= 20 && $val <= 40; // true if 20 <= x <= 40
Run Code Online (Sandbox Code Playgroud)

假设你想:

$in_range = ( $val > 1 && $val < 10 ) || ( $val > 20 && $val < 40 ); // true if 1 < x < 10 OR 20 < x < 40
Run Code Online (Sandbox Code Playgroud)


don*_*don 7

if (($value >= 1 && $value <= 10) || ($value >= 20 && $value <= 40)) {
   // A value between 1 to 10, or 20 to 40.
}
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以这样做:

if(in_array($value, range(1, 10)) || in_array($value, range(20, 40))) {
   # enter code here
}
Run Code Online (Sandbox Code Playgroud)

  • 这看起来非常干净,但请注意,即测试一到一百万之间的价格意味着创建一个包含一百万个项目的数组。我刚刚用 microtime() 测量了两种方式,对于如此大的范围,这种方式的运行速度似乎慢了 2000 倍左右,同时还消耗了大量内存。 (4认同)
  • 该解决方案“看起来很棒”,“效果很糟糕” (2认同)

Jád*_*ros 5

很抱歉回答晚了,但是这个功能可以让你做到这一点。

  function int_between($value, $start, $end) {
    return in_array($value, range($start, $end));
  }

  // Example
  $value1 = 20;
  $value2 = 40;
  echo int_between(20, $value1, $value2) ? "true" : "false";
Run Code Online (Sandbox Code Playgroud)