0

有什么方法可以在不逐行分配空值的情况下使所有 $this 变量无效?

   public function refresh(){
    unset($this);
}

未设置不起作用..

4

3 回答 3

0

你不能 unset($ths) 当你在 $this; 否则你将无处可去。

$this->propertyA = $this->propertyB = $this->propertyC = NULL;
于 2012-12-13T07:26:05.700 回答
0

你为什么要这样做?简单地取消设置你正在使用的类的实例,里面的一切都消失了

$a = new SomeClass();
$a->someVar = "1";
$a->someOtherVar = "2";
unset($a);

但是不要忘记创建一个新实例,如果你想继续$a 但是,这会将所有值重置为它们在属性定义中设置的默认值:

foreach (get_class_vars(get_class($this)) as $name => $def){ 
  $this->$name = $def;
}
于 2012-12-13T07:27:04.773 回答
-1

您可以尝试遍历每个字段并一一取消设置。像这样:

    function refresh() {
       foreach($this as $key => $value) {
           unset($this->$key);
       }
    }

注意:我现在无法测试此代码未经测试。

于 2012-12-13T07:29:05.660 回答