Is_numeric()
以及is_int()
如果值为0则返回false。我可以做什么来验证特定值是否只是PHP中的数字?
我们是否正在前往正规表演营地,或者那里有一些不错的,便利的功能吗?
谢谢!
答案 0 :(得分:5)
在这两种情况下,我都会回归:
var_dump(is_numeric(0));
var_dump(is_int(0));
<强>结果:强>
bool(true)
bool(true)
答案 1 :(得分:3)
归零,因为整数是空的。 因此,在检查Is_numeric()或is_int()
之前,请确保没有检查为空答案 2 :(得分:0)
var_dump(is_int("0"));
将传递false,因为您将零作为字符串文字传递给它。你可以尝试传递相同的东西作为一个已经通过的变量(我相信)parseInt(“”);
虽然我的php可能有些偏差,但是在过去的一两周里,Javascripting已经不停了。
答案 3 :(得分:0)
当您处理REQUEST时,最好先使用filter_input检查输入。以下是$ _GET中的'id'示例。
filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT)
完整的例子
if (is_int(filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT))) {
$id = $_GET['id'];
} else {
die('please input a integer');
}
好吧,该功能提供了PHP&gt; = 5.2版。
答案 4 :(得分:0)
我对同样的问题感到困惑,并且发现在号码后面有一个空格。
长话短说,无论数字是多少:
is_numeric(" 0.0") --> YES
is_numeric("0.0 ") --> NO
这是一个例子......
public function getCoordinates()
{
return sprintf('%1$f , %2$f',$this->getLatitude(),$this->getLongitude());
}
后来在这个过程中......
$myarr = explode(",",$_ScreenCoordinates);
echo "_ScreenCoordinates:$_ScreenCoordinates<br>";
echo "myarr[0]:".$myarr[0]." - ".((is_numeric($myarr[0]))?"YES":"NO")."<br>";
echo "myarr[1]:".$myarr[1]." - ".((is_numeric($myarr[1]))?"YES":"NO")."<br>";
echo "trimmed[0]:".$myarr[0]." - ".((is_numeric(trim($myarr[0])))?"YES":"NO")."<br>";
屏幕上印刷:
Array ( [0] => 1.200000 [1] => 123.456000 )
_ScreenCoordinates:1.200000 , 123.456000
myarr[0]:*1.200000 * - NO
myarr[1]:* 123.456000* - YES
trimmed[0]:*1.200000 * - YES
答案 5 :(得分:0)
如果0
实际上是布尔FALSE
,也会发生这种情况。
is_numeric()
始终为布尔值返回FALSE
。
答案 6 :(得分:0)
if($price != 0) {
if(is_numeric($price)) {
$price = $price; // numeric
} else { // is not numeric }
} else {
$price = $price; // 0 as numeric
}