我不小心用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
中的文档,但仍无法理解。
有人可以帮我吗?
答案 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);