private function parseField()
    {
        $type = $this->buffer[0];
        $this->buffer = substr($this->buffer, 1);

        // @todo bench switch vs if vs method map
        switch ($type) {
            case 's':
                return $this->parseSignedInt16();
            case 'l':
                return $this->parseSignedInt64();
            case 'x':
                return $this->parseByteArray();
            case 't':
                return $this->parseUnsignedInt8() !== 0;
            case 'b':
                return $this->parseSignedInt8();
            case 'I':
                return $this->parseSignedInt32();
            case 'f':
                return $this->parseFloat();
            case 'd':
                return $this->parseDouble();
            case 'D':
                return $this->parseDecimal();
            case 'S':
                return $this->parseLongString();
            case 'A':
                return $this->parseArray();
            case 'T':
                return $this->parseUnsignedInt64();
            case 'F':
                return $this->parseTable();
            case 'V':
                return null;
        }

        throw new AMQPProtocolException(
            sprintf(
                'table value type (0x%02x) is invalid or unrecognised.',
                ord($type)
            )
        );
    }
private function parseField()
    {
        $type = $this->buffer[0];
        $this->buffer = substr($this->buffer, 1);

        // @todo bench switch vs if vs method map
        switch ($type) {
            case 's':
                return $this->parseSignedInt16();
            case 'l':
                return $this->parseSignedInt64();
            case 'x':
                return $this->parseByteArray();
            case 't':
                return $this->parseUnsignedInt8() !== 0;
            case 'b':
                return $this->parseSignedInt8();
            case 'I':
                return $this->parseSignedInt32();
            case 'f':
                return $this->parseFloat();
            case 'd':
                return $this->parseDouble();
            case 'D':
                return $this->parseDecimal();
            case 'S':
                return $this->parseLongString();
            case 'A':
                return $this->parseArray();
            case 'T':
                return $this->parseUnsignedInt64();
            case 'F':
                return $this->parseTable();
            case 'V':
                return null;
        }

        throw new AMQPProtocolException(
            sprintf(
                'table value type (0x%02x) is invalid or unrecognised.',
                ord($type)
            )
        );
    }
private function parseField ( ) { $ type = $ this -> buffer [ 0 ] ; $ this -> buffer = substr ( $ this -> buffer , 1 ) ; // @todo bench switch vs if vs method map switch ( $ type ) { case 's' : return $ this -> parseSignedInt16 ( ) ; case 'l' : return $ this -> parseSignedInt64 ( ) ; case 'x' : return $ this -> parseByteArray ( ) ; case 't' : return $ this -> parseUnsignedInt8 ( ) !== 0 ; case 'b' : return $ this -> parseSignedInt8 ( ) ; case 'I' : return $ this -> parseSignedInt32 ( ) ; case 'f' : return $ this -> parseFloat ( ) ; case 'd' : return $ this -> parseDouble ( ) ; case 'D' : return $ this -> parseDecimal ( ) ; case 'S' : return $ this -> parseLongString ( ) ; case 'A' : return $ this -> parseArray ( ) ; case 'T' : return $ this -> parseUnsignedInt64 ( ) ; case 'F' : return $ this -> parseTable ( ) ; case 'V' : return null ; } throw new AMQPProtocolException ( sprintf ( 'table value type (0x%02x) is invalid or unrecognised.' , ord ( $ type ) ) ) ; }
Parse a table or array field.

@return integer|array|boolean|double|string|null
@throws AMQPProtocolException
Parse a table or array field .