如果我创建值为020的变量,它变为16?

时间:2012-08-16 18:58:31

标签: php variables zero

  

可能重复:
  php array behaving strangely with key value 07 & 08

在PHP中,当我创建$ myvar = 020和echo $ myvar时,我得到16为什么?

3 个答案:

答案 0 :(得分:6)

因为如果你给一个带0的数字加前缀,PHP假定你在base 8中工作,而base 8中的20在base 10中是16。

答案 1 :(得分:1)

因为0中的起始020告诉php它是一个八进制

更多例子

$a = 1234; // decimal number
$a = -123; // a negative number
$a = 0123; // octal number (equivalent to 83 decimal)
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal)

检查此php manual以获取更多解释

答案 2 :(得分:0)

这称为整数表示http://www.php.net/manual/en/language.types.integer.php

echo 0b11111; // binary, introduced in PHP 5.4
echo 31; // duh
echo 0x1f; // hexadecimal
echo 037; // octal