web-dev-qa-db-fra.com

PHP: Comment puis-je déterminer si une variable a une valeur comprise entre deux valeurs constantes distinctes?

Comment puis-je déterminer à l'aide du code PHP que, par exemple, j'ai une variable qui a une valeur 

  • entre 1 et 10, ou
  • entre 20 et 40?
24
Gabriel Meono
if (($value > 1 && $value < 10) || ($value > 20 && $value < 40))
55
Daniel A. White

Voulez-vous dire comme:

$val1 = Rand( 1, 10 ); // gives one integer between 1 and 10
$val2 = Rand( 20, 40 ) ; // gives one integer between 20 and 40

ou peut-être:

$range = range( 1, 10 ); // gives array( 1, 2, ..., 10 );
$range2 = range( 20, 40 ); // gives array( 20, 21, ..., 40 );

ou peut-être:

$truth1 = $val >= 1 && $val <= 10; // true if 1 <= x <= 10
$truth2 = $val >= 20 && $val <= 40; // true if 20 <= x <= 40

supposez que vous vouliez:

$in_range = ( $val > 1 && $val < 10 ) || ( $val > 20 && $val < 40 ); // true if 1 < x < 10 OR 20 < x < 40
18
Ryan
if (($value >= 1 && $value <= 10) || ($value >= 20 && $value <= 40)) {
   // A value between 1 to 10, or 20 to 40.
}
7
don

Vous pensez que vous voulez vérifier une valeur?

$myValue = 5;
$minValue = 1;
$maxValue = 10;

if ($myValue >= $minValue && $myValue <= $maxValue) { 
  //do something
}
3
Codecraft

Si vous voulez juste vérifier que la valeur est dans Range, utilisez ceci:

   MIN_VALUE = 1;
   MAX_VALUE = 100;
   $customValue = min(MAX_VALUE,max(MIN_VALUE,$customValue)));
1
Peter Berwanger

Tu peux le faire:

if(in_array($value, range(1, 10)) || in_array($value, range(20, 40))) {
   # enter code here
}
0
Heddie Franco

Une valeur aléatoire?

Si vous voulez une valeur aléatoire, essayez

<?php
$value = mt_Rand($min, $max);

mt_Rand () sera un peu plus aléatoire si vous utilisez plusieurs nombres aléatoires à la suite ou si vous exécutez le script plusieurs fois par seconde. En général, vous devriez utiliser mt_Rand () sur Rand () en cas de doute.

0
ohmusama

Essaye ça

if (($val >= 1 && $val <= 10) || ($val >= 20 && $val <= 40))

This will return the value between 1 to 10 & 20 to 40.
0
kakarot