src/Property/ParsableValueTrait.php
protected function parseAsMultiple($value, $separator = ',')
    {
        if (is_array($value) || $value instanceof Traversable) {
            $parsed = [];
            foreach ($value as $val) {
                if (empty($val) && !is_numeric($val)) {
                    continue;
                }

                $parsed[] = $val;
            }

            return $parsed;
        }

        if ($separator instanceof PropertyInterface) {
            $separator = $separator->multipleSeparator();
        }

        if (is_object($value) && method_exists($value, '__toString')) {
            $value = strval($value);
        }

        if (empty($value) && !is_numeric($value)) {
            return [];
        }

        /**
         * This property is marked as "multiple".
         * Manually handling the resolution to array
         * until the property itself manages this.
         */
        if (is_string($value)) {
            return explode($separator, $value);
        }

        /**
         * If the parameter isn't an array yet,
         * means we might be dealing with an integer,
         * an empty string, or an object.
         */
        if (!is_array($value)) {
            return (array)$value;
        }

        return $value;
    }
protected function parseAsMultiple($value, $separator = ',')
    {
        if (is_array($value) || $value instanceof Traversable) {
            $parsed = [];
            foreach ($value as $val) {
                if (empty($val) && !is_numeric($val)) {
                    continue;
                }

                $parsed[] = $val;
            }

            return $parsed;
        }

        if ($separator instanceof PropertyInterface) {
            $separator = $separator->multipleSeparator();
        }

        if (is_object($value) && method_exists($value, '__toString')) {
            $value = strval($value);
        }

        if (empty($value) && !is_numeric($value)) {
            return [];
        }

        /**
         * This property is marked as "multiple".
         * Manually handling the resolution to array
         * until the property itself manages this.
         */
        if (is_string($value)) {
            return explode($separator, $value);
        }

        /**
         * If the parameter isn't an array yet,
         * means we might be dealing with an integer,
         * an empty string, or an object.
         */
        if (!is_array($value)) {
            return (array)$value;
        }

        return $value;
    }
protected function parseAsMultiple ( $ value , $ separator = ',' ) { if ( is_array ( $ value ) || $ value instanceof Traversable ) { $ parsed = [ ] ; foreach ( $ value as $ val ) { if ( empty ( $ val ) && ! is_numeric ( $ val ) ) { continue ; } $ parsed [ ] = $ val ; } return $ parsed ; } if ( $ separator instanceof PropertyInterface ) { $ separator = $ separator -> multipleSeparator ( ) ; } if ( is_object ( $ value ) && method_exists ( $ value , '__toString' ) ) { $ value = strval ( $ value ) ; } if ( empty ( $ value ) && ! is_numeric ( $ value ) ) { return [ ] ; } /**
         * This property is marked as "multiple".
         * Manually handling the resolution to array
         * until the property itself manages this.
         */ if ( is_string ( $ value ) ) { return explode ( $ separator , $ value ) ; } /**
         * If the parameter isn't an array yet,
         * means we might be dealing with an integer,
         * an empty string, or an object.
         */ if ( ! is_array ( $ value ) ) { return ( array ) $ value ; } return $ value ; }
Parse the property value as a "multiple" value type.

@param  mixed                    $value     The value being converted to an array.
@param  string|PropertyInterface $separator The boundary string.
@return array
Parse the property value as a multiple value type .