如何检查从文本输入返回的字符串值是否为整数

Y K*_*Kal 2 php

我有一个用户搜索关键字的表单.

我想检查用户是否提交了一个数字(整数)而不是关键字.

我用这个:

$keyword = $_REQUEST["keyword"];

if (is_int($keyword)) {
  echo 'true';
} else {
  echo 'false';
}
Run Code Online (Sandbox Code Playgroud)

但即使提交的值是整数,它也始终返回false.

Bor*_*lid 9

is_int检查变量是否为整数类型.你拥有的是一个字符串,其字符碰巧代表一个整数.

尝试:

if (is_numeric($keyword) && is_int(0+$keyword))
Run Code Online (Sandbox Code Playgroud)

该0+会隐式转换以下为数字式,所以你会用字符串,如果可能的数值结束.is_numeric首先调用可确保您不会转换垃圾.