class syc//类syc { public $cuit;//属性 public function __destruct()//魔术方法,销毁对象时触发 { echo("action!<br>"); $function=$this->cuit;//属性cuit的值赋给function return $function();//调用$function所引用的函数(或方法)并返回其结果。当接收的是lover的对象后便会自动调用invoke方法。 } }
class web { public $eva1;//属性 public $interesting;//属性 public function __get($var)//魔术方法,当访问不可访问属性时自动调用。 { echo("get!<br>"); $eva1=$this->eva1; $eva1($this->interesting);//若$eval=eval;interesting='phpinfo',那么就是eval('phpinfo()')。这不就是代码执行吗,关键获取flag的点就在这里 } }