我无法在PHP变量中存储0123

时间:2012-06-11 11:42:55

标签: php

  

可能重复:
  Interview question: In php, is 123==0123?

我是PHP的新手。我试图在学习PHP的同时将0123存储在PHP变量中,但是当我回显变量时它显示83而不是0123。任何人都可以告诉我确切的技术原因。

先谢谢, Dhaval

3 个答案:

答案 0 :(得分:4)

因为当你将它存储为字符串时,你可能试图存储为整数。

// Incorrect
$var = 0123 // octal number (equivalent to 83 decimal)

// Correct
$var = '0123'

答案 1 :(得分:1)

如果你这样做:

$a = 0123;

然后您使用的是octal numbers 0123 = 83

答案 2 :(得分:1)

你可能正在做这样的事情

$var = 0123;

这是一个整数而不是字符串。旁注:“0123”是一个数字,因为除了0abs($var)<1之外,没有数字具有前导$var == 0。但是当与整数一起使用时,前导0具有特殊含义:它被视为基数为8的整数,然后将其转换为基数-10

               0123_8 = 83_10
1*8^2 + 2*8^1 + 3*8^0 = 8*10^1 + 3*10^0