通过Method重置类实例变量

Fra*_*ank 3 php

有谁知道如何通过类方法重置实例变量.像这样的东西:

class someClass 
{
    var $var1 = '';
    var $var2 = TRUE;

    function someMethod() 
    { 
        [...]
        // this method will alter the class variables
    }

    function reset()
    {
        // is it possible to reset all class variables from here?
    }
}

$test = new someClass();
$test->someMethod();
echo $test->var1;

$test->reset();
$test->someMethod();
Run Code Online (Sandbox Code Playgroud)

我知道我可以简单地执行$ test2 = new SomeClass()但我特别想找到一种通过方法重置实例(及其变量)的方法.

这有可能吗???

Vic*_*let 7

您可以使用反射来实现此目的,例如使用get_class_vars:

foreach (get_class_vars(get_class($this)) as $name => $default) 
  $this -> $name = $default;
Run Code Online (Sandbox Code Playgroud)

这不是完全健壮的,它打破非公共变量(get_class_vars不读取)并且它不会触及基类变量.