类对象更改oops中的php常量
今天我在oops中阅读常数,被一段代码弄糊涂了,因为一段代码无法解释其原因。下面给出了代码:类对象更改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) {
<?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有些人是反静电的,因为他们是邪恶的。您可以使用定义,但请看