可能重复:
PHP __get 和 __set 魔术方法
刚刚从 OOP 开始。. 无论如何,不确定我是否理解正确,但代码不应该$attribute
因为函数而改变 的值__set()
吗?
<?php
class aclass
{
protected $attribute; //edited from public to protected
public function __get ($name)
{
return $this->$name;
}
public function __set ($name, $value)
{
if($name == "foo")
{
$this->$name = $value;
}
}
}
$a = new aclass();
$a->attribute = "bar";
echo $a->attribute;
?>
当我运行此错误消息时显示:
“致命错误:无法在第 16 行访问受保护的属性 aclass::$attribute ......” 第 16 行是“echo $a->attribute” - 其他帖子说该属性必须设置为 PROTECTED 但它不起作用。我正在使用 PHP 5.4.3 - 有什么想法吗?