我不明白爲什麼__unset()
不起作用。PHP Magic Method __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()
時錯過了什麼?