我试图学习神奇的方法__GET和__SET。现在我正在研究__GET方法。
我收到了无法访问私有财产错误。
这是我的代码:
<?php
class getset {
private $name;
public function __set($property, $value) {
if((property_exists($this, $property))) {
$this->$property = $value;
echo "Successfully updated {$property} to {$value}";
} else {
echo "This failed.";
}
}
}
getset::$name = 'Thomas';
?>
我不确定发生了什么。我已经查看了__SET函数中的参数,我似乎正在正确地关注它。
我不确定发生了什么。这是我的完整代码:
致命错误:未捕获错误:未定义的类常量&#39; name&#39;在C:\ xampp \ htdocs \ OOP Lessons \ Classes \ getset.inc.php:22堆栈跟踪:#0 {main}在第22行的C:\ xampp \ htdocs \ OOP Lessons \ Classes \ getset.inc.php中引发
该行是:
getset::$name = 'Thomas';
答案 0 :(得分:1)
以下是一个可以帮助您的示例:
<?php
class getset {
private $name;
public function __set($property, $value) {
if((property_exists($this, $property))) {
$this->$property = $value;
echo "Successfully updated {$property} to {$value}";
} else {
echo "This failed.";
}
}
}
$newObj=new getset();
$newObj->name='Thomas';
print_r($newObj);
?>
//输出:
Successfully updated name to Thomas
getset Object
(
[name:getset:private] => Thomas
)