PHP中的除法运算符

时间:2016-08-15 12:10:42

标签: php types division

我不小心用PHP做了一个除法运算符:

$a = 012; //or 0012 or even 00012
echo $a/4;
echo gettype($a/4);

我得到的输出是:2.5 double。 //我不知道为什么输出是2.5

我再试一次:

$a=12;
echo $a/4;
echo gettype($a/4);

这将输出3 Integer

我已阅读https://secure.php.net/manual/en/language.operators.arithmetic.php中的文档,但仍无法理解。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:9)

以零为星的值是八进制。所以八进制中的012是十进制的10。 10分4是2.5。

答案 1 :(得分:0)

您可以做的一件事是在使用它之前清理$ a的值。

$a = ltrim($a, '0');

当你将它转换为int时,这将删除所有前面的0并表示012 => 12而不是10

e.g。

$a = 0012;
$a = ltrim($a, '0');
echo $a/4;
echo gettype($a/4);