我不明白为什么__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()
自动调用 Magic Method 并取消设置变量。
在上面的代码中,我使用的是 unset 但它没有调用__unset()
. 为什么?我在理解魔法方法时遗漏了什么__unset()
吗?