values[$name] = $value; } /** * Возвращает значение * @param string ...$args * @return mixed */ function get(...$args) { $result = $this->values; foreach ($args as $name) { if (!isset($result[$name])) { return null; } $result = $result[$name]; } return $result; } /** * Сохраняет состояние * @return string */ function saveState(): string { return base64_encode(serialize($this->values)); } /** * Восстанавливает состояние * @param string $value */ function restoreState($value): void { $this->values = unserialize(base64_decode($value)); } /** * Возвращает состояние * @return array */ function export() { return $this->values; } }