public static function &getRef($key = null, &$array = null)
    {
        $null = null;
        if ($array === null) {
            $array = &self::$store;
        }
        if ($key === null) {
            return $array;
        }
        
        if (!is_array($key)) {
            if (!strpos($key, '.')) {
                if (self::arrayHasKey($key, $array)) {
                    $value =& $array[$key];
                    return $value;
                }
                return $null;
            }
            $key = self::splitArrayPath($key);
        }
        
        $firstKey = array_shift($key);
        if (self::arrayHasKey($firstKey, $array)) {
            if (count($key) > 0) {
                return self::getRef($key, $array[$firstKey]);
            } else if (!is_array($array)) {
                $value = $array[$firstKey];
                return $value;
            } else {
                $value =& $array[$firstKey];
                return $value;
            }
        }
        
        return $null;
    }
public static function &getRef($key = null, &$array = null)
    {
        $null = null;
        if ($array === null) {
            $array = &self::$store;
        }
        if ($key === null) {
            return $array;
        }
        
        if (!is_array($key)) {
            if (!strpos($key, '.')) {
                if (self::arrayHasKey($key, $array)) {
                    $value =& $array[$key];
                    return $value;
                }
                return $null;
            }
            $key = self::splitArrayPath($key);
        }
        
        $firstKey = array_shift($key);
        if (self::arrayHasKey($firstKey, $array)) {
            if (count($key) > 0) {
                return self::getRef($key, $array[$firstKey]);
            } else if (!is_array($array)) {
                $value = $array[$firstKey];
                return $value;
            } else {
                $value =& $array[$firstKey];
                return $value;
            }
        }
        
        return $null;
    }
public static function & getRef ( $ key = null , & $ array = null ) { $ null = null ; if ( $ array === null ) { $ array = & self :: $ store ; } if ( $ key === null ) { return $ array ; } if ( ! is_array ( $ key ) ) { if ( ! strpos ( $ key , '.' ) ) { if ( self :: arrayHasKey ( $ key , $ array ) ) { $ value = & $ array [ $ key ] ; return $ value ; } return $ null ; } $ key = self :: splitArrayPath ( $ key ) ; } $ firstKey = array_shift ( $ key ) ; if ( self :: arrayHasKey ( $ firstKey , $ array ) ) { if ( count ( $ key ) > 0 ) { return self :: getRef ( $ key , $ array [ $ firstKey ] ) ; } else if ( ! is_array ( $ array ) ) { $ value = $ array [ $ firstKey ] ; return $ value ; } else { $ value = & $ array [ $ firstKey ] ; return $ value ; } } return $ null ; }
Gets a reference to a value from the store using its associatied key

You can fetch value from sub arrays by using a path-like
key. Separate each key with a slash. For example if you want
to fetch the value from an $store[key1][key2][key3] you can use
key1.key2.key3
Can be used on any array by specifying the second argument

@param string|array $key The configuration key which value should be returned. If null, fetches all values
@param array $array The array on which the operation is applied
@return mixed Null if the key does not match
Gets a reference to a value from the store using its associatied key