PHP:BCMath是否接受整数?

时间:2018-03-13 16:35:49

标签: php bcmath

在PHP中的BCMath函数中使用INT类型变量是否安全?

示例:

CompletionException

这似乎有效,但这样做是否安全?或者有一个风险,PHP可以将INT解释为除了int值之外的其他东西(我正在考虑十六进制值等)?

谢谢!

1 个答案:

答案 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