gpt4 book ai didi

PHP intval() 行为?

转载 作者:行者123 更新时间:2023-12-04 00:10:07 28 4
gpt4 key购买 nike

这对我来说听起来很奇怪:

$test_1 = 'string';
$test_2 = '0';

var_dump(intval($test_1)); // Output: int 0
var_dump(intval($test_2)); // Output: int 0

$can_cast = intval($test_2) ? 'sure' : 'nope'; // Wrong!!!

因此,对于 stringint 的转换,intval 返回 0。很好,但是当字符串实际上可以转换为零(因为为零)因此有效时,它也会返回 0

如何区分两者(允许“0”作为字符串并拒绝“字符串”)?

编辑:好的,让我说我知道我可以使用is_numeric但是 is_numeric('2.3') 返回 true,所以它无能为力。并且:

$test = '0';
var_dump(is_numeric($test) && intval($test)); // Fail!!!

最佳答案

你可以做一个 ctype_digit在你投之前检查(如果你只想要正数)。或者,您可以使用 filter_var 进行整数验证和 FILTER_VALIDATE_INT .整数验证还将检查整数语义,即它将确保整数在允许的范围内。您还可以通过多个选项根据您的需要对其进行自定义。

关于PHP intval() 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8554050/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com