protected function normalizeValue($value)
    {
        $normalizeValue = function (&$v) {
            if ($v instanceof \DateTimeInterface) {
                $v = $v->format('c');
            } elseif (!is_scalar($v) && !is_null($v)) {
                $v = (string) $v;
            }
        };

        if (is_array($value) || $value instanceof \Traversable || $value instanceof \ArrayAccess) {
            $value = is_array($value) ? $value : iterator_to_array($value, false);
            array_walk_recursive($value, $normalizeValue);
        } else {
            $normalizeValue($value);
        }

        return $value;
    }
protected function normalizeValue($value)
    {
        $normalizeValue = function (&$v) {
            if ($v instanceof \DateTimeInterface) {
                $v = $v->format('c');
            } elseif (!is_scalar($v) && !is_null($v)) {
                $v = (string) $v;
            }
        };

        if (is_array($value) || $value instanceof \Traversable || $value instanceof \ArrayAccess) {
            $value = is_array($value) ? $value : iterator_to_array($value, false);
            array_walk_recursive($value, $normalizeValue);
        } else {
            $normalizeValue($value);
        }

        return $value;
    }
protected function normalizeValue ( $ value ) { $ normalizeValue = function ( & $ v ) { if ( $ v instanceof \ DateTimeInterface ) { $ v = $ v -> format ( 'c' ) ; } elseif ( ! is_scalar ( $ v ) && ! is_null ( $ v ) ) { $ v = ( string ) $ v ; } } ; if ( is_array ( $ value ) || $ value instanceof \ Traversable || $ value instanceof \ ArrayAccess ) { $ value = is_array ( $ value ) ? $ value : iterator_to_array ( $ value , false ) ; array_walk_recursive ( $ value , $ normalizeValue ) ; } else { $ normalizeValue ( $ value ) ; } return $ value ; }
Attempts to convert any type to a string or an array of strings.

@param mixed $value

@return string|array
Attempts to convert any type to a string or an array of strings .