【发布时间】:2013-05-16 07:07:38
【问题描述】:
我不明白为什么__unset() 不起作用。
class myclass {
public $name = array();
public function __set($arraykey, $value){
$this->name[$arraykey] = $value;
}
public function __isset($argu){
return isset($this->name[$argu]);
}
public function __unset($argu){
echo "Working: Unset $this->name[$argu]";
unset($this->name[$argu]);
}
}
$obj = new myclass;
$obj->name = 'Arfan Haider';
var_dump(isset($obj->name));
unset($obj->name);
我读到,每当调用unset() 函数时,就会自动调用魔术方法__unset() 并取消设置变量。
在上面的代码中,我使用的是 unset,但它没有调用 __unset()。为什么?我在理解魔法方法__unset() 时遗漏了什么吗?
【问题讨论】:
标签: php magic-methods unset