【发布时间】:2018-08-22 00:23:05
【问题描述】:
在 PHP 的 BCMath 函数中使用 INT 类型变量是否安全?
例子:
<?php
$a = 1;
$b = "1";
echo bcadd($a,$b,0);
?>
这似乎可行,但这样做安全吗?或者是否存在例如 PHP 可以将 INT 解释为 int 值以外的其他东西的风险(我正在考虑十六进制值等)?
谢谢!
【问题讨论】:
-
您的主题行与您的实际问题不符...
-
如果你愿意,你可以像这样转换你的变量:bcadd((int) $a, (int) $b, 0);
-
Rod Elias:我知道,但我的问题是在传递 INT(通过 INT var 或通过强制转换非 INT var)而不是 STRINGS 时是否保证正确的结果。
-
bc 函数接受 string 参数并返回 strings。
-
如果您将一个有效的 PHP 整数(或浮点数)传递给
bcadd,它的工作方式与您首先将变量转换为字符串一样。它以与任何 PHP 函数相同的方式“接受”它们——它们只是使用内置的类型转换逻辑透明地转换。