gpt4 book ai didi

php - 在 PHP 中,我可以区分 intval(null) 和 intval ("0") 的结果吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:06 31 4
gpt4 key购买 nike

我通过帖子获得输入值,其中一些可能是ID指的其他内容,而有些则开始于0。在选择具有ID 0的内容或没有值的内容时,是否存在 Intval( ) 在解析失败时返回比 0 更有用的东西?或者我能以某种方式区分 intval() 的结果与解析失败吗?

例子:

echo intval(null); // 0
echo intval("0"); // 0

最佳答案

您可以使用 filter_var()判断差异的函数:

filter_var(null, FILTER_VALIDATE_INT);
// false

filter_var('0', FILTER_VALIDATE_INT);
// int(0)

您还可以添加标志以专门接受十六进制和八进制值,但我不建议您这样做。

顺便说一句,如果变量更可能来自 $_POST,您还可以使用 filter_input():

if (is_int($nr = filter_input(INPUT_POST, 'nr', FILTER_VALIDATE_INT))) {
// $nr contains an integer
}

我在 filter_input 的结果上使用 is_int() 的原因是因为当什么都没有发布时,返回 null;使用 is_int() 可以防止这个问题。

编辑

如果问题真的只是关于 null'0' 你可以比较 $var !== null:

if (!is_null($var)) {
// $var is definitely not null
// but it might also be an object, string, integer, float even, etc.
}

关于php - 在 PHP 中,我可以区分 intval(null) 和 intval ("0") 的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854853/

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