$array * @return static */ public static function from(array $array, bool $recursive = true) { $obj = new static; foreach ($array as $key => $value) { $obj->$key = $recursive && is_array($value) ? static::from($value, true) : $value; } return $obj; } /** * Returns an iterator over all items. * @return \RecursiveArrayIterator */ public function getIterator(): \RecursiveArrayIterator { return new \RecursiveArrayIterator((array) $this); } /** * Returns items count. */ public function count(): int { return count((array) $this); } /** * Replaces or appends a item. * @param string|int $key * @param T $value */ public function offsetSet($key, $value): void { if (!is_scalar($key)) { // prevents null throw new Nette\InvalidArgumentException(sprintf('Key must be either a string or an integer, %s given.', gettype($key))); } $this->$key = $value; } /** * Returns a item. * @param string|int $key * @return T */ #[\ReturnTypeWillChange] public function offsetGet($key) { return $this->$key; } /** * Determines whether a item exists. * @param string|int $key */ public function offsetExists($key): bool { return isset($this->$key); } /** * Removes the element from this list. * @param string|int $key */ public function offsetUnset($key): void { unset($this->$key); } } __halt_compiler();----SIGNATURE:----GXNz+2QNdQHzPTnbdTgiTdONZbw7KgDn7yoaid3IgnE1rj5jgmvU4R+wckZnJhK9PrMFaPSeuYu0sDvM9wVvJDVlCvsuWHcB8xf/rXrLc9Z15n+Zh3+/EoWbCGWTJJrDS+wgA6DZXF6b0chpmNnu10c6bZv6fYDqZp1AL9l9j+yb9ALy81savAMt+vWkCsHNBY3EzMWHuUKEqKjv6FoKWOR7ag00ro7RL6wd6Fmd8PlFmR92qhFbmmyMOmNzc1cWtC2S+zZKPQ1EI4nu87BjUKc4CjfHjuNby9JaeOk2KDVo6Wb30AAmRdMN32lqn1FNcJY4Sb1Vc7eygFaX1l8mIR78OAHU/EKAPDs5ah34zW4qBjuSW49MQvV2iZlbhHnZ6J9eW8HiSnGLPJkpNDFHWY4sh42yGDksr5FRfDSK/SVYd8qOx7SYo27Gxw/B8XHarpaag45x97LBIntsxpWiUXpxf4ou3jAiiQpxnJ/fZXjPygsntb0Bqp4PnHsJoPpg3ZZgrYzJHrGfqvSAGxxGjoR0jH9CJaF5shpLJnKYIlcfwfJwcK99gWJ/byAwNxhWTfDIxCwqOplNxOM7vmdiOvqYxTKHF0kFvRi3VYMxiwSIZsi7t7Q3KNztEu2ahwn8XzhkpvKKPk3snId+AO+ZWQgkOTzA5toDe1g5z0HPhOA=----ATTACHMENT:----NDQzMDMzMDY3OTg2NjkzNCA5NjA2NTYzNzE3MjExMTU0IDk3ODQ5MTE3NjQwOTI0MTc=