为什么爆炸函数转换值


why does explode function transforms value?

我有一个小的爆炸过程:

$var = 120.180;
$var = explode("." , $var);
$var1 = $var[0];
$var2 = $var[1];
echo $var1;
echo $var2;

回波是:

120和18,为什么?为什么180变为18,我该如何修复?

因为120.180不是字符串,所以它是一个数字。因此,120.180将变为120.18,因为零是一个浮点值。你会发现,仅仅回应120.180仍然会产生120.18。

如果你做了$var = "120.180";,即在数字周围使用引号,你就会得到你期望的结果。

将值放在引号中以使用$var作为字符串:

$var = '120.180';

现在您将120.180保存为某个浮点值,该值将截断后零。

将$var作为字符串重试:

$var = '120.180';

$var不包含您期望的内容。考虑以下代码:

$var = 120.180;
var_dump($var);

这将输出float(120.18)——您可以看到它已经删除了零。这就是数字在PHP中的存储方式。

如果要保留0 s,请将数字存储为字符串。

$var = '120.180';

你无法修复它。它一开始就坏了。相反,从一些不同的东西开始。

$var = '120.180';
$var = explode("." , $var);
$var1 = $var[0];
$var2 = $var[1];
echo $var1;
echo $var2;