*/ private array $data = [], ) { } public function __get(string $name): mixed { return $this->data[$name] ?? new self(); } public function __set(string $name, mixed $value): void { $this->data[$name] = $value; } public function __isset(string $name): bool { return true; } public function __unset(string $name): void { unset($this->data[$name]); } /** * @param array $arguments */ public function __call(string $name, array $arguments): mixed { return $this->data[$name] ?? new self(); } public function __invoke(mixed ...$arguments): self { return $this; } public function formatCurrency(mixed $amount, string $currency, array $attributes = [], ?string $locale = null): string { return ''; } public function __toString(): string { return ''; } public function offsetExists(mixed $offset): bool { return true; } public function offsetGet(mixed $offset): mixed { return $this->data[$offset] ?? new self(); } public function offsetSet(mixed $offset, mixed $value): void { $this->data[$offset] = $value; } public function offsetUnset(mixed $offset): void { unset($this->data[$offset]); } public function count(): int { return count($this->data); } public function getIterator(): \ArrayIterator { return new \ArrayIterator($this->data); } }