Klassen `BulkGate\Sms\BulkMessage` representerer objektet som samler meldinger av typen [`BulkGate\Sms\Message`](https://www.bulkgate.com/no/dokumentasjon/php-sdk/php-sdk-melding/2.0/) i en massemelding (kampanje).

```php
use BulkGate\Sms\BulkMessage;
```

Konstruktøren har én valgfri parameter av typen [`array`](http://php.net/manual/en/language.types.array.php), som må inneholde elementer av typen [`BulkGate\Sms\Message`](https://www.bulkgate.com/no/dokumentasjon/php-sdk/php-sdk-melding/2.0/).

```php
$array = [
    new BulkGate\Sms\Message("420777777777", "test1"),
    new BulkGate\Sms\Message("420777777778", "test2"),
    new BulkGate\Sms\Message("420777777779", "test3"),
    new BulkGate\Sms\Message("420777777780", "test4"),
];

$bulk_message = new BulkMessage($array);
```

Meldinger kan legges til én om gangen:

```php
$message = new BulkGate\Sms\Message(
    new BulkGate\Sms\Message\PhoneNumber("777777781", BulkGate\Sms\Country::CZECH_REPUBLIC),
    new BulkGate\Sms\Message\Text("test<number>", [
        'number' => '5'
    ])
);

/** @var BulkGate\Sms\BulkMessage $bulk_message */
$bulk_message->addMessage($message);
```

## Iterator

Du kan gå gjennom meldingene med løkken [`foreach`](http://php.net/manual/en/control-structures.foreach.php) 

```php
/** 
 * @var BulkGate\Sms\BulkMessage $bulk_message 
 * @var BulkGate\Sms\Message $message
 */
foreach($bulk_message as $message)
{
    echo $message;
}
```

Antallet meldinger finner du med `count()`

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
$bulk_message->count();
```

## JSON-støtte

Objektet `BulkGate\Sms\BulkMessage` implementerer grensesnittet [`\JsonSerializable`](http://php.net/manual/en/class.jsonserializable.php), som lar deg konvertere det til JSON-format med funksjonen [`json_encode()`](http://php.net/manual/en/function.json-encode.php).

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
echo json_encode($bulk_message);
```

Utdataene er:

```json
[
  {
    "number": {
      "number": "420777777777",
      "iso": null
    },
    "text": "test1",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "420777777778",
      "iso": null
    },
    "text": "test2",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "420777777779",
      "iso": null
    },
    "text": "test3",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "420777777780",
      "iso": null
    },
    "text": "test4",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  },
  {
    "number": {
      "number": "777777781",
      "iso": "cz"
    },
    "text": "test5",
    "status": "preparation",
    "price": 0.0,
    "credit": 0.0,
    "id": null,
    "scheduled": null
  }
]
```

## Konvertering til streng

Objektet `BulkGate\Sms\BulkMessage` implementerer den magiske metoden [`__string()`](http://php.net/manual/en/language.oop5.magic.php#object.tostring).

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
$message = (string) $bulk_message; // til variabelen
echo $bulk_message; // til utdataene
```

Utdataene er:
```
420777777777: test1
420777777778: test2
420777777779: test3
420777777780: test4
777777781: test5
```

## Konvertering til matrise

```php
/** @var BulkGate\Sms\BulkMessage $bulk_message */
$array = $message->toArray();
```
