is_int,is_numeric,is_float和HTML表单验证

Dre*_*rew 5 html php validation int

我的HTML表单上的选择字段可能会产生1到5(整数).使用is_int每次都拒绝它,因为它$_POST['rating']被视为一个字符串.

在查阅PHP手册之后,is_numeric() && !is_float()在这种情况下,似乎是验证整数的正确方法.

但我想确定,所以请确认或消除我的逻辑.

Mat*_*son 5

我可能会使用这样的东西:

$value = filter_var(
  $_POST['rating'], 
  FILTER_VALIDATE_INT, 
  array('options' => array('min_range' => 1, 'max_range' => 5))); 
Run Code Online (Sandbox Code Playgroud)

filter_var()false如果值是非整数或超出范围,则返回布尔值,或者返回有效值本身(作为整数.)


ale*_*lex 4

我会使用is_numeric(),因为用户输入总是以字符串形式出现(据我所知)。

保证某物是整数的另一种方法是将其转换......

$id = (int) $id;
Run Code Online (Sandbox Code Playgroud)