我只是想知道为什么 php 有一个像is_int()
. 文档说
测试变量是数字还是数字字符串(例如表单输入,它始终是字符串)
我确信没有人需要检查静态分配的变量的类型。所以有人请告诉我会有什么情况,这个功能is_int()
真的有用吗?
完整的理解解决方案....
这是代码
<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
echo "is_int(";
var_export($value);
echo ") = ";
var_dump(is_int($value));
}
?>
这是输出
is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)
考虑一个用户表单输入:
$_POST['integer'] = "3";
$integer = +$_POST['integer']; // convert to a number
var_dump(is_int($integer)); // bool(true)
$_POST['float'] = "3.5";
$float = +$_POST['float']; // convert to a number
var_dump(is_int($float)); // bool(false)
此功能在以下情况下很有用,
$a = 5;
//some functionality
function passbyref(&$b)
{
$b = "45";
}
passbyref($a);
if(is_int($a))
{
print "Yes it is int";
}
它查找给定变量的类型是否为integer
。
这是我找到的示例:
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
echo "is_int(";
var_export($value);
echo ") = ";
var_dump(is_int($value));
}
上面的示例将输出:
is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)
了解更多:点击这里