php上的奇怪行为

Yan*_*lan 1 php oop string octal

有人可以告诉我为什么我在以下代码中得到奇怪的结果?

<?php
class Bank
{
    var $ID;
    var $balance;
    var $name;
    function bank($name,$id,$balance=0)
    {
        $this->ID=$id;
        $this->balance=$balance;
        $this->name=$name;
    }
    function getBalance()
    {
        return $this->balance;
    }
    function setBalance($bal)
    {
        $this->balance=$bal;
    }
    function getId()
    {
        return $this->ID;
    }
    function setId($i)
    {
        $this->ID=$i;
    }
)
$b= new bank(yaniv,027447002, 15000);
Run Code Online (Sandbox Code Playgroud)

现在,当我试图回应:

$b->ID 
Run Code Online (Sandbox Code Playgroud)

而不是预期的027447002我得到一个奇怪的6180354,但如果我启动这样的对象:

$b=new bank(yaniv,'027447002',15000);
Run Code Online (Sandbox Code Playgroud)

(注意我引用了id属性)它工作正常.任何建议为什么会发生这种情况以及解决问题的正确方法是什么?

Pau*_*xon 6

027447002是八进制的,因为它以零为前缀.将其转换为十进制,你得到6180354!

有关详细信息,请参阅整数手册页.