可以将一个变量乘以一来检查它是否真的是 php 中的数字吗?
我这样做是为了检查并已经在 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;
}
谢谢,
乔
I am doing this to check and already use the variable of type number in php:
$myvar = $myvar * 1;
with this, I have a number or if $myvar has any other caracter, the result is 0
I wonder if this can somehow trouble me in the future.
for preventing sake, I am using a function that englobes that above code so I can change it if needed. Eg:
$myvar = IntOrZero($myvar);
so my question if this is a goodway to check and use the number variable?
EDIT:
Using a * 1, I am sure that it will return me a variable of type number.
See:
$var = "350";
$num = 120;
// builtin
if (is_numeric($var))
echo($var - $num);
// multiplying
$var *= 1;
echo($var - $num);
While I am not sure if the builtin method would echo what I want, I am sure that the multiplying will.
I kinda don't care if the $var is a number or not, I won't show any message to the user if it is not, I will work with the 0 value if it is not a number. Based on answers, would this be a good way?
function IntOrZero($var){
return is_numeric($var) ? intval($var) : 0;
}
thanks,
Joe
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,这不是一个好方法,原因如下:
要确保变量是数字,强制转换:
检查它是否是一个数字:
这些都略有不同,具体取决于您到底要检查的内容。请参阅文档:
http://php.net/is_numeric
http://php.net/manual/en/function.ctype-digit.php
http://php.net/is_int
http://php.net/is_float
No, it's not a good way, and here's why:
To make sure a variable is a number, cast it:
To check whether it's a number or not:
These are all slightly different, depending on what exactly you want to check for. Refer to the documentation:
http://php.net/is_numeric
http://php.net/manual/en/function.ctype-digit.php
http://php.net/is_int
http://php.net/is_float
is_int() \ is_numeric() \ ctype_digit() 有什么问题?
what's wrong with is_int() \ is_numeric() \ ctype_digit() ??
嗯,你为什么不做适当的检查?
例如:
我强烈建议您使用正确的方法来检查您的价值。
Umm why are you not doing a proper check?
Like:
I would strongly suggest you use a proper way of checking your value.