oops中的php常量由类对象更改

时间:2014-06-27 11:24:59

标签: php oop

今天我在oops中阅读不断,并被一段代码搞糊涂了,但是我不知道代码的原因如下:

<?php
class myClass1
{
    const ID=1;
    private $name;

    public function get_name()
    {
        return $this->name ."<br>";
    }

    public function set_name($setName)
    {
        $this->name=$setName;
    }
}

$myClass1_object = new myClass1();

$myClass1_object->ID=2;

print("<br>".$myClass1_object->ID);
?>

我想知道如何通过类对象改变常量变量即const ID = 1的原因,即$ myClass1_object-&gt; ID = 2;在打印声明中,我得到更新的值,即2。

1 个答案:

答案 0 :(得分:2)

如果您尝试访问未定义的对象属性,PHP会为您创建它:

$obj = new stdClass();

$obj->hello = 'world';

因此,当您尝试以这种方式访问​​常量时,您只创建了另一个字段ID。尝试在脚本末尾打印常量值:

echo myClass1::ID;

它应该仍然是1