应该是访问的属性未定义。使用__set或__get魔术方法访问的属性应是私密属性才会去调用。
给个例子:
class Demo{
private $user = '张三';
private $age = 20;
public function __set($key,$value){
$this->$key=$value;
}
public function __get($key){
return $this->$key;
}
}
$demo = new Demo();
$demo->user = '李四';//因不可直接访问$user属性,所以调用了__set方法
$demo->age = 30; //因不可直接访问$age属性,所以调用了__set方法
echo '用户'.$demo->user.'今年'.$demo->age.'岁了';//调用的私密方法,输出'李四今年30岁了'