浏览代码

Opt for a smaller and slightly more efficient solution.

Daniele Alessandri 14 年之前
父节点
当前提交
3d9ddeef98
共有 1 个文件被更改,包括 4 次插入8 次删除
  1. 4 8
      lib/Predis/ConnectionParameters.php

+ 4 - 8
lib/Predis/ConnectionParameters.php

@@ -17,12 +17,6 @@ class ConnectionParameters {
         $this->_userDefined = array_fill_keys(array_keys($this->_parameters), true);
     }
 
-    private static function paramsExtractor($params, $kv) {
-        @list($k, $v) = explode('=', $kv);
-        $params[$k] = $v;
-        return $params;
-    }
-
     private static function getSharedOptions() {
         if (isset(self::$_sharedOptions)) {
             return self::$_sharedOptions;
@@ -93,8 +87,10 @@ class ConnectionParameters {
             throw new \InvalidArgumentException("Invalid URI: $uri");
         }
         if (isset($parsed['query'])) {
-            $query  = explode('&', $parsed['query']);
-            $parsed = array_reduce($query, 'self::paramsExtractor', $parsed);
+            foreach (explode('&', $parsed['query']) as $kv) {
+                @list($k, $v) = explode('=', $kv);
+                $parsed[$k] = $v;
+            }
             unset($parsed['query']);
         }
         return $this->filter($parsed);