我试着理解intval()是如何工作的,其中一个例子是intval(042)= 34.我知道默认基数是10,那么为什么它返回34而不是42.在这个例子中零点扮演什么角色?
echo intval(042); //34
echo intval(42); //42
答案 0 :(得分:7)
答案 1 :(得分:4)
前缀为0
的数字被视为八进制数字(基数为8)。 0428 = 3410
实际上,这与intval
无关。如果您只是写echo 042;
,那么您将获得34
。
同样,您也可以用十六进制编写数字。 echo 0xff;
提供255
。
而且,从PHP 5.4开始,您甚至可以用二进制编写数字:echo 0b1001;
给出9
。
答案 2 :(得分:1)
因为0之前的数字意味着这个数字是八进制数,尝试将42形式八进制转换为十进制它会给你34
我希望这能帮到你,