在BCMath函数中使用INT型变量安全吗?
示例:
<?php
$a = 1;
$b = "1";
echo bcadd($a,$b,0);
?>这似乎可行,但这样做安全吗?或者,是否存在PHP可以将INT解释为int值以外的其他东西的风险(我正在考虑十六进制值等)?
谢谢!
发布于 2018-03-13 18:20:50
对大量的数字要小心。如果将文字整数> PHP_INT_MAX赋给变量,则为PHP将自动将其转换为浮点数。我知道您专门询问了int,在这种情况下,您将传递一个浮点数,但是如果您不知道自动转换,它看起来就像是使用了一个大int,所以我认为这是值得一提的。
$a = 9223372036854775808;
$b = '1';
var_dump($b); // float 9.2233720368548E+18
echo bcadd($a, $b, 0); // echoes 1基本上,这个函数确实需要一个字符串。如果您给它一些不是字符串的东西,PHP会自动将它转换成一个字符串,除非您已经启用了严格模式。
https://stackoverflow.com/questions/49261368
复制相似问题