protected function &_getKey($key)
    {
        $default = null;
        $parts = is_string($key) ? explode('.', $key) : $key;

        switch (count($parts)) {
            case 1:
                if (isset($this->_info[$parts[0]])) {
                    return $this->_info[$parts[0]];
                }

                return $default;
            case 2:
                if (isset($this->_info[$parts[0]][$parts[1]])) {
                    return $this->_info[$parts[0]][$parts[1]];
                }

                return $default;
            case 3:
                if (isset($this->_info[$parts[0]][$parts[1]][$parts[2]])) {
                    return $this->_info[$parts[0]][$parts[1]][$parts[2]];
                }

                return $default;
            case 4:
                if (isset($this->_info[$parts[0]][$parts[1]][$parts[2]][$parts[3]])) {
                    return $this->_info[$parts[0]][$parts[1]][$parts[2]][$parts[3]];
                }

                return $default;
            default:
                $data = $this->_info;
                foreach ($parts as $key) {
                    if (is_array($data) && isset($data[$key])) {
                        $data = $data[$key];
                    } else {
                        return $default;
                    }
                }
        }

        return $data;
    }
protected function &_getKey($key)
    {
        $default = null;
        $parts = is_string($key) ? explode('.', $key) : $key;

        switch (count($parts)) {
            case 1:
                if (isset($this->_info[$parts[0]])) {
                    return $this->_info[$parts[0]];
                }

                return $default;
            case 2:
                if (isset($this->_info[$parts[0]][$parts[1]])) {
                    return $this->_info[$parts[0]][$parts[1]];
                }

                return $default;
            case 3:
                if (isset($this->_info[$parts[0]][$parts[1]][$parts[2]])) {
                    return $this->_info[$parts[0]][$parts[1]][$parts[2]];
                }

                return $default;
            case 4:
                if (isset($this->_info[$parts[0]][$parts[1]][$parts[2]][$parts[3]])) {
                    return $this->_info[$parts[0]][$parts[1]][$parts[2]][$parts[3]];
                }

                return $default;
            default:
                $data = $this->_info;
                foreach ($parts as $key) {
                    if (is_array($data) && isset($data[$key])) {
                        $data = $data[$key];
                    } else {
                        return $default;
                    }
                }
        }

        return $data;
    }
protected function & _getKey ( $ key ) { $ default = null ; $ parts = is_string ( $ key ) ? explode ( '.' , $ key ) : $ key ; switch ( count ( $ parts ) ) { case 1 : if ( isset ( $ this -> _info [ $ parts [ 0 ] ] ) ) { return $ this -> _info [ $ parts [ 0 ] ] ; } return $ default ; case 2 : if ( isset ( $ this -> _info [ $ parts [ 0 ] ] [ $ parts [ 1 ] ] ) ) { return $ this -> _info [ $ parts [ 0 ] ] [ $ parts [ 1 ] ] ; } return $ default ; case 3 : if ( isset ( $ this -> _info [ $ parts [ 0 ] ] [ $ parts [ 1 ] ] [ $ parts [ 2 ] ] ) ) { return $ this -> _info [ $ parts [ 0 ] ] [ $ parts [ 1 ] ] [ $ parts [ 2 ] ] ; } return $ default ; case 4 : if ( isset ( $ this -> _info [ $ parts [ 0 ] ] [ $ parts [ 1 ] ] [ $ parts [ 2 ] ] [ $ parts [ 3 ] ] ) ) { return $ this -> _info [ $ parts [ 0 ] ] [ $ parts [ 1 ] ] [ $ parts [ 2 ] ] [ $ parts [ 3 ] ] ; } return $ default ; default : $ data = $ this -> _info ; foreach ( $ parts as $ key ) { if ( is_array ( $ data ) && isset ( $ data [ $ key ] ) ) { $ data = $ data [ $ key ] ; } else { return $ default ; } } } return $ data ; }
Gets info value for the given key.

@param string|array $key The path to read. String using a dot-syntax, or an
array result of exploding by `.` symbol
@return mixed
Gets info value for the given key .