代码之家  ›  专栏  ›  技术社区  ›  Sadat

面试问题:在php中,123==0123是什么?

  •  22
  • Sadat  · 技术社区  · 16 年前

    我回答说这是假的。然后他问为什么?我无法回答。有人能回答吗?我对学习它很感兴趣。

    5 回复  |  直到 16 年前
        1
  •  70
  •   Robert    10 年前

    var_dump(123);
    var_dump(0123);
    

    int 123
    int 83
    

    这是因为 0123 是八进制记数法 (因为 0 开始时) 123


    Integer 手册的一节。


    一个更棘手的问题是 79 079 例如:

    var_dump(79);
    var_dump(079);
    

    int 79
    int 7
    

    ( 9 不是八进制中的有效数字;-) )

        2
  •  24
  •   fbrereto    16 年前

    在数字前加上前缀 0 表示八进制(以8为基数),方式大致相同 0x 表示十六进制(以16为底)。

        3
  •  5
  •   Krishna Kant Sharma    16 年前

    1) 当我们在php中使用==运算符时,它会检查值是否相等。 因此,5==“5”=>真

    123=0123=>错误的 也就是123==0123=>错误的

    123不等于83

        4
  •  2
  •   Cat Plus Plus    16 年前

    因为0123的意思是“八进制123(以8为基数)”,即十进制83。

        5
  •  2
  •   Rowland Shaw    16 年前

    0123是八进制数的表示法(83十进制,在我脑海中),而123是十进制数。因此,他们并不平等。