Scalr_Net_Scalarizr_Client::walkSerialize PHP Method

walkSerialize() private method

private walkSerialize ( $object, &$retval, $normalizationMethod )
    private function walkSerialize($object, &$retval, $normalizationMethod)
    {
        if ($object === null) {
            return false;
        }
        foreach ($object as $k => $v) {
            if ($v === null) {
                $v = '';
            }
            $valueType = gettype($v);
            $objectType = gettype($retval);
            $normalizedString = call_user_func(array($this, $normalizationMethod), $k);
            if (is_object($v) || is_array($v)) {
                if ($objectType == 'object') {
                    if (is_array($v)) {
                        $retval->{$normalizedString} = array();
                    } else {
                        $retval->{$normalizedString} = new stdClass();
                    }
                    call_user_func_array(array($this, 'walkSerialize'), array($v, &$retval->{$normalizedString}, $normalizationMethod));
                } else {
                    if (is_array($v)) {
                        $retval[$normalizedString] = array();
                    } else {
                        $retval[$normalizedString] = new stdClass();
                    }
                    call_user_func_array(array($this, 'walkSerialize'), array($v, &$retval[$normalizedString], $normalizationMethod));
                }
            } else {
                if (is_object($retval)) {
                    $retval->{$normalizedString} = $v;
                } else {
                    if (!is_int($k)) {
                        $retval[$normalizedString] = $v;
                    } else {
                        $retval[] = $v;
                    }
                }
            }
        }
    }