Is_numeric()
以及is_int()
如果值为0,则返回false。我可以做些什么来验证特定值是否只是PHP中的数字?PHP:Is_numeric在0上返回false
我们是否直奔正规表达阵营,还是有一些不错的,方便的功能呢?
谢谢!
Is_numeric()
以及is_int()
如果值为0,则返回false。我可以做些什么来验证特定值是否只是PHP中的数字?PHP:Is_numeric在0上返回false
我们是否直奔正规表达阵营,还是有一些不错的,方便的功能呢?
谢谢!
重新启动服务器上的PHP,现在运行良好。不知道为什么它发生。谢谢大家的帮助!
这是在两种情况下返回我真:
var_dump(is_numeric(0));
var_dump(is_int(0));
结果:
bool(true)
bool(true)
很奇怪。不知道为什么我的测试(Windows)环境确实返回false。 – Industrial 2010-05-05 15:23:03
var_dump(is_int("0"));
将通过假的,因为你是零把它当作一个字符串。你可以尝试传递一个经历过的变量(我相信)parseInt(“”);
虽然我的php可能有点关闭,在上个星期或上两个星期不停地进行JavaScript脚本编程。
嗨!该字符串不作为字符串传递。 – Industrial 2010-05-05 15:26:11
@Industrial这是一个悖论;) – Gordon 2010-05-05 15:29:08
@ Gordon Duuh。那绝对是名气之墙。传递的值不是一个字符串,而只是一个数字。我希望这可以理解;) – Industrial 2010-05-05 21:02:23
零,因为整数是空的。 因此,在检查Is_numeric()或is_int()之前,确保没有空的检查。
谢谢!令人惊讶的是,这正是我正在做的! :) – 2016-12-23 06:55:16
当您处理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版本> = 5.2。
我在同样的问题上苦苦挣扎,它碰巧在号码后面有一个空格。
长话短说,什么都数为:
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
这也可能发生,如果这0
实际上是一个布尔FALSE
。 is_numeric()
对于布尔值总是返回FALSE
。
no repro,'is_numeric(0)'为我返回'bool(true)'。与'is_int'相同 – SilentGhost 2010-05-05 15:17:50
@Industrial:你确定吗? HTTP://www.ideone。com/h5CSa – kennytm 2010-05-05 15:18:35
你确定它不是一个字母O而不是一个零? – 2010-05-05 15:18:37