这是PHP块:
<?php
print 09;
?>
结果:
0
为什么结果为0而不是09或9或0x9或其他任何东西?
答案 0 :(得分:4)
前导零表示八进制值。因此,01
在八进制中是1,在十进制中也是1。 010
是八进制的10,十进制是8。 09
不是有效的八进制数,因为八进制系统中没有数字9(只有0-7),所以PHP默默地忽略你的错误并给你零。
事实上,PHP会在八进制数字中的无效数字后忽略所有内容:01493
== 014
== 12
。有趣的是,它不会忽略无效的十六进制数字:0xfgf
是一个错误。
在这种情况下,各种语言对于他们应该做什么有不同的看法。例如,JavaScript会忽略八进制提示:010
为8,但09
为9。
答案 1 :(得分:0)
您需要输入引号,以便print
可以将其视为String
而不是Integer
。
尝试:
print "09";
或
echo "09";