Comment vérifier si un entier est dans une plage de numéros en PHP?
Comment puis-je vérifier si un nombre donné est à l'intérieur d'une plage de nombres?
Vous devez vous connecter pour publier un commentaire.
Comment puis-je vérifier si un nombre donné est à l'intérieur d'une plage de nombres?
Vous devez vous connecter pour publier un commentaire.
L'expression:
sera vrai si
$value
est entre$min
et$max
, inclusivementVoir le PHP docs pour en savoir plus sur les opérateurs de comparaison
$value
est un float. Aussi, puisque la comparaison est lâche, le passage d'une chaîne peut produire des faux, par exemple(0 <= 'string') && ('string' <= 10) );
esttrue
en raison de type de jonglage.(int)
jette. Dans ce cas, je serais probablement choisir de les laisser sortir.Vous pouvez utiliser
filter_var
Cela vous permettra également de indiquez si vous souhaitez autoriser l'octal et hexadécimal d'entiers. Notez que la fonction est de type sécurisé.
5.5
n'est pas un entier mais un flotteur et ne sera pas validé.Tutoriel détaillé sur le filtrage de données avec PHP:
Pourraient vous aider:
http://php.net/manual/en/function.range.php
Vous pourrait attiser un peu la fonction d'assistance pour ce faire:
Et vous pouvez l'utiliser comme ceci:
Vous pouvez ajuster les opérateurs de comparaison si vous voulez que les valeurs limites à ne pas être valide.
Vous pouvez essayer la suite d'une déclaration:
ou:
D'autres possibilités:
Ou:
En fait c'est ce qui est utilisé pour la fonte d'une valeur qui est hors de la plage la plus proche fin de celui-ci.
Exemple
à l'aide d'un commutateur cas
switch(true)
, sinon, si$num == 0
, le cas de la logique échoue parce que PHP essaie de faire correspondre0 == ($num>= $value1 && $num<= $value2)
, etc. J'ai proposé que cette modification.Une autre façon de le faire avec de simples si/d'autre de la gamme. Ex:
J'ai créé une fonction pour vérifier si les temps dans un tableau se chevauchent quelque peu: