可能重复:
面试题:在php中,是123==0123吗?
我是 PHP 新手。我在学习 PHP 时尝试将 0123 存储在 PHP 变量中,但是当我回显该变量时它显示 83 而不是 0123。谁能给我确切的技术原因。
提前致谢, 达瓦尔
可能重复:
面试题:在php中,是123==0123吗?
我是 PHP 新手。我在学习 PHP 时尝试将 0123 存储在 PHP 变量中,但是当我回显该变量时它显示 83 而不是 0123。谁能给我确切的技术原因。
提前致谢, 达瓦尔
因为当您应该将其存储为字符串时,您可能试图将其存储为整数。
// Incorrect
$var = 0123 // octal number (equivalent to 83 decimal)
// Correct
$var = '0123'
你可能正在做这样的事情
$var = 0123;
这是一个整数而不是字符串。旁注:“0123”不是0
数字,因为除了abs($var)<1
or之外,没有数字有前导$var == 0
。但是当与整数一起使用时,前导0
具有特殊含义:它被视为以 8 为底的整数,然后将其转换为以 10 为底的整数
0123_8 = 83_10
1*8^2 + 2*8^1 + 3*8^0 = 8*10^1 + 3*10^0