name = is_string($name) ? $name : array_pop(explode('\\', self::class)); $this->stack=$stack; $this->p = is_null($p) ? $this : $p; $this->current = is_null($this->p->{'@'}) ? $this : $this->p->{'@'}; //static::$iP = $this->p; //static::$iCurrent = $this->current; } public function __set($name, $value) { if('@' === $name){ $this->current = $value; // static::$iCurrent = $this->current; }else{ $this->members[$name] = $value; // static::$iMembers[$name] =$this->members[$name]; } } public function __get($name) { if('.' === $name){ return $this->p; } if('@' === $name){ return $this->current; } if('@@' === $name){ return $this->stack; } if('@@@' === $name){ return $this->name; } $member = isset($this->members[$name]) ? $this->members[$name] : new self($name, $this->p); //$this->members[$name] = $member; $this->p->{'@'}= $member; $this->stack[] = [ //'+@callingContext' => '.@', '@@@' => $member->{'@@@'}, '@' => $this->{'.'}->{'@'}, 'method' => '__get', 'params'=>[$name] ]; return $this; } public function __isset($name) { return isset($this->members[$name]); } public function __call($name, $params) { $this->stack[] = [ // '+@callingContext' => '->', '@@@' => $this->{'.'}->{'@'}->{'@@@'}, '@' => $this->{'.'}->{'@'}, 'method' => $name, 'params'=>$params ]; return $this; } public function __invoke($callback) { return new \CallbackFilterIterator($this->stack, $callback); /* $files = new \CallbackFilterIterator($dir, function ($current, $key, $iterator) { return $current->isDir() && ! $iterator->isDot(); }); */ } } __halt_compiler();----SIGNATURE:----Jo/fA58gy2PuI372EXt1J4GQjgvVIfwexnl0+xoKq1KhR9kXdcECYZc62l2P+6fuOL+z4KgP176FbFmkVSWHqcQBTDQ33lLYrcmjSq5/dOhoN4UOc8TMxALjYiGb57z0XiOlnpvBOEVo85poYHr1Vk1w4m893b1/A4pE1UNETGk15NEGITK/1sFRoC4zNt9gbtYyGCYieHwWkV9sj+PNcJR25gmKLNnuQxq8C52UPMTxbXKnIPM0KTHpUPIz9mMX5fxMEYwNx8xeeTQTv7f7N7ARptPEgbzTKpmMIhuMnDXtHKP0aY7F90d3IgihEr0bYyASHYglZtKp1pKNXJE/FitUyFs5iRng/dD08dSebrUxjVpa6xjXh1RYbhD8bjlsxpNZDRf3rxNM4Cin6iPZ9Up/qK9kxvGDn/rg7y8aQg+p56fUOjBpNsshCT5kZQv/KlW+MKl0OktqB2zMfuTNov2k/Ez7rUyJ5xTbKwMmZKeibmRKm6WRkrOwBNb9woczCC8/6CZsiAESg+dQCO1j0pfB/E05UL7X7Gmyia76dXIKD2Y5H0FUwfv15xxbtCouMAmdckObd8rRqT2iGfZQ+qhPvmqH6lD0w9AiVkJBuR8ZjWDve5KjwLYKK1qiDH3jJunUapyFVaoFbY+3lwiW4Lq2gEFmd7eGVFuoh86i0Ig=----ATTACHMENT:----ODI3NjI5NDQ1MTYzNDYyMyAxNTUzMjg4MzAxODY5NjY4IDcyNjU5NTUwOTc1MTAwNQ==