getDbValue() === $this->getDbValue(); } public function getValue() { $ret = array(); foreach ($this->value as $var) { $ret[] = $var->getValue(); } return $ret; } public function getDbValue() { return json_encode($this->getValue()); } public function getDbFormat() { return 'json'; } public function setValue($value) { $new = array(); foreach ($value as $k => $v) { $new[] = self::wantCustomVariable($k, $v); } $equals = true; if (is_array($this->value) && count($new) === count($this->value)) { foreach ($this->value as $k => $v) { if (! $new[$k]->equals($v)) { $equals = false; break; } } } else { $equals = false; } if (! $equals) { $this->value = $new; $this->setModified(); } $this->deleted = false; return $this; } public function flatten(array &$flat, $prefix) { foreach ($this->value as $k => $v) { $v->flatten($flat, sprintf('%s[%d]', $prefix, $k)); } } public function toConfigString($renderExpressions = false) { $parts = array(); foreach ($this->value as $k => $v) { $parts[] = $v->toConfigString($renderExpressions); } return c::renderEscapedArray($parts); } public function __clone() { foreach ($this->value as $key => $value) { $this->value[$key] = clone($value); } } public function toLegacyConfigString() { return c1::renderArray($this->value); } }