private static function validateParams($name, $params, array $others) {
        if (is_array($params)) {
            foreach ($params + $others as $key => $value) {
                if ($key === '' || $value === null) {
                    unset($params[$key]);
                    continue;
                }
                $params[$key] = self::validateString("{$name}[$key]", $value);
            }
            return $params;
        }
        if (false === $params = filter_var($params)) {
            throw new InvalidArgumentException("The value of $name must be a 1-demensional array or query string.");
        }
        $tmp = $others;
        if ('' !== $params = trim($params)) {
            foreach (explode('&', $params) as $pair) {
                list($key, $value) = explode('=', $pair, 2) + array(1 => '');
                $tmp[urldecode($key)] = urldecode($value);
            }
        }
        return $tmp;
    }
private static function validateParams($name, $params, array $others) {
        if (is_array($params)) {
            foreach ($params + $others as $key => $value) {
                if ($key === '' || $value === null) {
                    unset($params[$key]);
                    continue;
                }
                $params[$key] = self::validateString("{$name}[$key]", $value);
            }
            return $params;
        }
        if (false === $params = filter_var($params)) {
            throw new InvalidArgumentException("The value of $name must be a 1-demensional array or query string.");
        }
        $tmp = $others;
        if ('' !== $params = trim($params)) {
            foreach (explode('&', $params) as $pair) {
                list($key, $value) = explode('=', $pair, 2) + array(1 => '');
                $tmp[urldecode($key)] = urldecode($value);
            }
        }
        return $tmp;
    }
private static function validateParams ( $ name , $ params , array $ others ) { if ( is_array ( $ params ) ) { foreach ( $ params + $ others as $ key => $ value ) { if ( $ key === '' || $ value === null ) { unset ( $ params [ $ key ] ) ; continue ; } $ params [ $ key ] = self :: validateString ( "{$name}[$key]" , $ value ) ; } return $ params ; } if ( false === $ params = filter_var ( $ params ) ) { throw new InvalidArgumentException ( "The value of $name must be a 1-demensional array or query string." ) ; } $ tmp = $ others ; if ( '' !== $ params = trim ( $ params ) ) { foreach ( explode ( '&' , $ params ) as $ pair ) { list ( $ key , $ value ) = explode ( '=' , $ pair , 2 ) + array ( 1 => '' ) ; $ tmp [ urldecode ( $ key ) ] = urldecode ( $ value ) ; } } return $ tmp ; }
Force parameters 1-demensional array or query string.

@param string $name
@param mixed  $params
@param array  $others additional params
@return array filterd parameters
Force parameters 1 - demensional array or query string .