# The MongoDB\BSON\Binary class

(mongodb >=1.0.0)

## Introduction

BSON type for binary data (i.e. array of bytes). Binary values also have a subtype, which is used to indicate what kind of data is in the byte array. Subtypes from zero to 127 are predefined or reserved. Subtypes from 128-255 are user-defined.

## Class synopsis

final MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Constants */
const int TYPE_GENERIC = 0 ;
const int TYPE_FUNCTION = 1 ;
const int TYPE_OLD_BINARY = 2 ;
const int TYPE_OLD_UUID = 3 ;
const int TYPE_UUID = 4 ;
const int TYPE_MD5 = 5 ;
const int TYPE_ENCRYPTED = 6 ;
const int TYPE_USER_DEFINED = 128 ;
/* Methods */
final public __construct ( string `$data` , int `$type` )
final public getData ( ) : string
final public getType ( ) : int
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string `$serialized` ) : void
}

## Predefined Constants

`MongoDB\BSON\Binary::TYPE_GENERIC`

  Generic binary data.

`MongoDB\BSON\Binary::TYPE_FUNCTION`

  Function.

`MongoDB\BSON\Binary::TYPE_OLD_BINARY`

  Generic binary data (deprecated in favor of `MongoDB\BSON\Binary::TYPE_GENERIC`).

`MongoDB\BSON\Binary::TYPE_OLD_UUID`

  Universally unique identifier (deprecated in favor of `MongoDB\BSON\Binary::TYPE_UUID`). When using this type, the Binary's data should be 16 bytes in length.

  Historically, other drivers encoded values with this type based on their language conventions (e.g. varying endianness), which makes it non-portable. The PHP driver applies no special handling for encoding or decoding data with this type.

`MongoDB\BSON\Binary::TYPE_UUID`

  Universally unique identifier. When using this type, the Binary's data should be 16 bytes in length and encoded according to » RFC 4122.

`MongoDB\BSON\Binary::TYPE_MD5`

  MD5 hash. When using this type, the Binary's data should be 16 bytes in length.

`MongoDB\BSON\Binary::TYPE_ENCRYPTED`

  Encrypted value. This subtype is used for client-side encryption.

`MongoDB\BSON\Binary::TYPE_USER_DEFINED`

  User-defined type. While types between 0 and 127 are predefined or reserved, types between 128 and 255 are user-defined and may be used for anything.

## Changelog

Version | Description
--- | ---
PECL mongodb 1.3.0 | Implements MongoDB\BSON\BinaryInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

## Table of Contents

- MongoDB\BSON\Binary::__construct — Construct a new Binary
- MongoDB\BSON\Binary::getData — Returns the Binary's data
- MongoDB\BSON\Binary::getType — Returns the Binary's type
- MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON
- MongoDB\BSON\Binary::serialize — Serialize a Binary
- MongoDB\BSON\Binary::__toString — Returns the Binary's data
- MongoDB\BSON\Binary::unserialize — Unserialize a Binary