/** * {@inheritdoc} */ public function encodeObject($value, $flags = null) { $hash = $this->hash($value); if (!array_key_exists($hash, $this->values)) { if (Flags::contains(Flags::BUILD_STACK, $flags)) { $flags = Flags::remove(Flags::BUILD_STACK, $flags); $flags = Flags::add(Flags::CLOSE_STATEMENT, $flags); $this->buildStack($value, $flags); } $this->values[$hash] = null; $this->values[$hash] = $this->chain->next($this, __FUNCTION__, [$value, $flags]); } return $this->values[$hash]; }
/** * Check if given array is an numeric one. * * @param array $data The array being encoded. * @param int|null $flags Optional json encode flags. * * @return bool */ private function isNumericArray(array $data, $flags) { if (Flags::contains(JSON_FORCE_OBJECT, $flags)) { return false; } foreach (array_keys($data) as $key) { if (!is_numeric($key)) { return false; } } return true; }