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:----ot3eGCIbdKi+5JXDhbHin4ctPIhPNKP2BP2iGiDKy/mLePyi1lJ90rf2A+a1cZ++1EToohMeMj+1Jj8uUevqnFdDxzedxJ2bc76+DM9MaRtDO/fLxNC4cQBrAWHV4sHS0Nc6L0JZauqgedK9eyGSN3mSdvzUPe1FEBYumP+JpFXmzV95f06cIO7rCa6jWYqQ3bmYA2Mo59GsFGYUPgk2V9yidtagFnrgQBcBL2eEeryAJtr6/Pi9FP8u/EpPafmtktQuM1nEm6B6DZu2csEZpyqp8XA/aEDgPUL4za+PM9KNuUrkidpfMbzGYGZvx+01idoMfIhUPpdSfhFE89jdAwsPAjBqopZy+9k0iUhxqLOTV5QRkiaJo1bMz8G88vpYVgkufPjWTUr5bv/JmlcaWfUXfcEP62ujQIH4TPistQcoGzYy/RiXY24Vutk23T1BSMoD5GG3ex11UI3KJZa29FGyJWNK7PzTJ2z5DRkhur0JrDGUAdl/OmzK6INtayF6Zhar+Oqcq5QOzYzFd77tPJSZmTvMOS1G2Xy7AjtlLxkFgw9CPsQZMQvoqSQ81ZqPH30P2evBsDSfd2KQZFVcHc7tuOxBVfSOxlWKadkkZ74mtht8dC1HqP/5psgWDZXFVzIK8qF0iEcv++/wIlnEPeq7invNM5845MzfhGUX3fM=----ATTACHMENT:----MTg1NTY3MTI4NzQxNDI3OCA3NTk1NDA3OTA0NzA1MDg1IDk2NjcyMTE0MjYxODk3MTA=