在PHP中的BCMath函数中使用INT类型变量是否安全?
示例:
CompletionException
这似乎有效,但这样做是否安全?或者有一个风险,PHP可以将INT解释为除了int值之外的其他东西(我正在考虑十六进制值等)?
谢谢!
答案 0 :(得分:0)
小心非常大的数字。如果指定一个文字整数> PHP_INT_MAX
变量PHP will automatically convert it to a float。我知道你特意询问了整数,在那种情况下你会通过一个浮动,但如果你不知道自动转换它看起来像你'重新使用大型int,所以我认为值得一提。
$a = 9223372036854775808;
$b = '1';
var_dump($b); // float 9.2233720368548E+18
echo bcadd($a, $b, 0); // echoes 1
基本上,该函数确实需要一个字符串。如果你给它一些不是字符串的东西,PHP会自动将它转换成字符串,除非你启用了strict mode。