gpt4 book ai didi

php - 可以将一个变量乘以一个变量来检查它是否真的是 php 中的一个数字吗?

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

我这样做是为了检查并已经在 php 中使用了 number 类型的变量:

$myvar = $myvar * 1;

有了这个,我有一个数字,或者如果 $myvar 有任何其他字符,结果是 0

我想知道这是否会在将来以某种方式困扰我。

为了防止发生这种情况,我使用了一个包含上述代码的函数,以便我可以根据需要更改它。例如:

$myvar = IntOrZero($myvar);

所以我的问题是这是否是检查和使用数字变量的好方法?

编辑:
使用 * 1,我确信它会返回一个数字类型的变量。
参见:

$var = "350";
$num = 120;
// builtin
if (is_numeric($var))
echo($var - $num);

// multiplying
$var *= 1;
echo($var - $num);

虽然我不确定内置方法是否会回应我想要的,但我确信乘法会。
我有点不在乎 $var 是不是数字,如果不是,我不会向用户显示任何消息,如果它不是数字,我将使用 0 值。根据答案,这是一个好方法吗?

function IntOrZero($var){
return is_numeric($var) ? intval($var) : 0;
}

谢谢,

最佳答案

不,这不是一个好方法,原因如下:

$ php -r 'echo array() * 1;'
Fatal error: Unsupported operand types in Command line code on line 1

要确保变量是数字,cast it :

$integer = (int)$integer;
$float = (float)$float;

检查它是否是一个数字:

is_numeric($var)    // number or string containing any valid numeric expression
ctype_digit($var) // string containing only digits
is_int($var) // is of type int
is_float($var) // is of type float

这些都略有不同,具体取决于您要检查的内容。引用文档:

http://php.net/is_numeric
http://php.net/manual/en/function.ctype-digit.php
http://php.net/is_int
http://php.net/is_float

关于php - 可以将一个变量乘以一个变量来检查它是否真的是 php 中的一个数字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4911599/

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