栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检查变量在PHP中是否为整数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检查变量在PHP中是否为整数

使用

is_numeric()
检查,如果一个变量是一个整数是一个坏主意。该函数将返回
TRUE
用于
3.14
例如。这不是预期的行为。

要正确执行此操作,可以使用以下选项之一:

考虑此变量数组:

$variables = [    "TEST 0" => 0,    "TEST 1" => 42,    "TEST 2" => 4.2,    "TEST 3" => .42,    "TEST 4" => 42.,    "TEST 5" => "42",    "TEST 6" => "a42",    "TEST 7" => "42a",    "TEST 8" => 0x24,    "TEST 9" => 1337e0];

第一个选项(FILTER_VALIDATE_INT方式):

# Check if your variable is an integerif ( filter_var($variable, FILTER_VALIDATE_INT) === false ) {  echo "Your variable is not an integer";}

输出:

TEST 0 : 0 (type:integer) is an integer ✔TEST 1 : 42 (type:integer) is an integer ✔TEST 2 : 4.2 (type:double) is not an integer ✘TEST 3 : 0.42 (type:double) is not an integer ✘TEST 4 : 42 (type:double) is an integer ✔TEST 5 : 42 (type:string) is an integer ✔TEST 6 : a42 (type:string) is not an integer ✘TEST 7 : 42a (type:string) is not an integer ✘TEST 8 : 36 (type:integer) is an integer ✔TEST 9 : 1337 (type:double) is an integer ✔

第二种选择(比较方式):

# Check if your variable is an integerif ( strval($variable) !== strval(intval($variable)) ) {  echo "Your variable is not an integer";}

输出:

TEST 0 : 0 (type:integer) is an integer ✔TEST 1 : 42 (type:integer) is an integer ✔TEST 2 : 4.2 (type:double) is not an integer ✘TEST 3 : 0.42 (type:double) is not an integer ✘TEST 4 : 42 (type:double) is an integer ✔TEST 5 : 42 (type:string) is an integer ✔TEST 6 : a42 (type:string) is not an integer ✘TEST 7 : 42a (type:string) is not an integer ✘TEST 8 : 36 (type:integer) is an integer ✔TEST 9 : 1337 (type:double) is an integer ✔

第三种选择(CTYPE_DIGIT方式):

# Check if your variable is an integerif ( ! ctype_digit(strval($variable)) ) {  echo "Your variable is not an integer";}

输出:

TEST 0 : 0 (type:integer) is an integer ✔TEST 1 : 42 (type:integer) is an integer ✔TEST 2 : 4.2 (type:double) is not an integer ✘TEST 3 : 0.42 (type:double) is not an integer ✘TEST 4 : 42 (type:double) is an integer ✔TEST 5 : 42 (type:string) is an integer ✔TEST 6 : a42 (type:string) is not an integer ✘TEST 7 : 42a (type:string) is not an integer ✘TEST 8 : 36 (type:integer) is an integer ✔TEST 9 : 1337 (type:double) is an integer ✔

第四个选项(REGEX方式):

# Check if your variable is an integerif ( ! preg_match('/^d+$/', $variable) ) {  echo "Your variable is not an integer";}

输出:

TEST 0 : 0 (type:integer) is an integer ✔TEST 1 : 42 (type:integer) is an integer ✔TEST 2 : 4.2 (type:double) is not an integer ✘TEST 3 : 0.42 (type:double) is not an integer ✘TEST 4 : 42 (type:double) is an integer ✔TEST 5 : 42 (type:string) is an integer ✔TEST 6 : a42 (type:string) is not an integer ✘TEST 7 : 42a (type:string) is not an integer ✘TEST 8 : 36 (type:integer) is an integer ✔TEST 9 : 1337 (type:double) is an integer ✔


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号