Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类对象更改oops中的php常量_Php_Oop - Fatal编程技术网

类对象更改oops中的php常量

类对象更改oops中的php常量,php,oop,Php,Oop,今天我在oops中阅读常数,被一段代码弄糊涂了,因为一段代码无法解释其原因。下面给出了代码: <?php class myClass1 { const ID=1; private $name; public function get_name() { return $this->name ."<br>"; } public function set_name($setName) {

今天我在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);
?>


我想知道为什么类对象$myClass1\u object->ID=2会改变常量变量const ID=1;在print语句中,我得到了更新后的值,即2。

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

$obj = new stdClass();

$obj->hello = 'world';
因此,当您尝试以这种方式访问常量时,只创建了另一个字段ID。尝试在脚本末尾打印常量值:

echo myClass1::ID;

它仍然应该是1

这个常量正在通过神奇的方法更改
\u set()
您打印另一个字段(通过神奇的方法访问它而创建),而不是常量。使用以下语法访问常量:
myClass1::ID
还有一件事。在课堂上使用常量的目的是什么?毫无意义。你有静电干扰properties@turson有些人是反静电的,因为他们是邪恶的。您可以使用定义,但请看