Jon*_*han 4 php variables integer numbers
我这样做是为了检查并已经在php中使用了数字类型的变量:
$myvar = $myvar * 1;
Run Code Online (Sandbox Code Playgroud)
有这个,我有一个数字或如果$ myvar有任何其他的特征,结果是0
我想知道这可能会在某种程度上让我在将来遇到麻烦.
为了防止缘故,我正在使用一个功能,使上面的代码吞噬,所以我可以根据需要更改它.例如:
$myvar = IntOrZero($myvar);
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,这是一个检查和使用数字变量的好道路?
编辑:
使用*1,我相信它会返回一个类型号的变量.
看到:
$var = "350";
$num = 120;
// builtin
if (is_numeric($var))
echo($var - $num);
// multiplying
$var *= 1;
echo($var - $num);
Run Code Online (Sandbox Code Playgroud)
虽然我不确定内置方法是否会回应我想要的内容,但我确信这种方法会倍增.
我有点不在乎$ var是否为数字,如果不是,我不会向用户显示任何消息,如果不是数字,我将使用0值.根据答案,这会是一个好方法吗?
function IntOrZero($var){
return is_numeric($var) ? intval($var) : 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
乔
dec*_*eze 14
不,这不是一个好方法,这就是原因:
$ php -r 'echo array() * 1;'
Fatal error: Unsupported operand types in Command line code on line 1
Run Code Online (Sandbox Code Playgroud)
要确保变量是数字,请将其强制转换为:
$integer = (int)$integer;
$float = (float)$float;
Run Code Online (Sandbox Code Playgroud)
要检查它是否是一个数字或不:
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
Run Code Online (Sandbox Code Playgroud)
这些都略有不同,具体取决于您要检查的具体内容.请参阅文档:
http://php.net/is_numeric
http://php.net/manual/en/function.ctype-digit.php
http://php.net/is_int
http://php.net/is_float