Die Klasse `BulkGate\Sms\Message\PhoneNumber` stellt das Objekt einer Telefonnummer dar.

```php
use BulkGate\Sms\Message\PhoneNumber;
```

Der Konstruktor akzeptiert die Telefonnummer als Pflichtparameter und optional den ISO-Code des Landes.

```php
$phone_number = new PhoneNumber(
    "420777777777", 
    BulkGate\Sms\Country::CZECH_REPUBLIC
);
``` 

Der zweite Parameter ist erforderlich, wenn Sie eine Nummer im nationalen Format angeben. Geben Sie eine Telefonnummer im nationalen Format an und keinen [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)-Code, ergänzt BulkGate die internationale Vorwahl entsprechend dem Land, das in Ihrem Benutzerkonto angegeben ist.

Die Telefonnummer können Sie auch nach dem Erstellen der Instanz ändern.

```php
/** @var BulkGate\Sms\Message\PhoneNumber $phone_number */
$phone_number->phoneNumber('420777777777');
``` 

Ebenso können Sie den ISO-Code festlegen.

```php
/** @var BulkGate\Sms\Message\PhoneNumber $phone_number */
$phone_number->iso(BulkGate\Sms\Country::CZECH_REPUBLIC);

// oder

$phone_number->iso('cz');
``` 
Bei einem ungültigen ISO-Code wird die Ausnahme `BulkGate\Sms\Message\InvalidPhoneNumberException` ausgelöst 


## Umwandlung in JSON

```php
/** @var BulkGate\Sms\Message\PhoneNumber $phone_number */
echo json_encode($phone_number);
``` 

Die Ausgabe lautet:

```json
{
    "number": "420777777777",
    "iso": null
}
``` 

## Sonstiges

Formatierte Telefonnummer als String abrufen

```php
/** @var BulkGate\Sms\Message\PhoneNumber $phone_number */
$phone_number->getPhoneNumber();
$number = (string) $phone_number; 
echo $phone_number;
```

ISO-Code abrufen
```php
/** @var BulkGate\Sms\Message\PhoneNumber $phone_number */
$phone_number->getIso(); // gibt einen String oder null zurück
``` 

Außerdem wird ein [Fluent Interface](https://en.wikipedia.org/wiki/Fluent_interface) unterstützt

```php
/** @var BulkGate\Sms\Message\PhoneNumber $phone_number */
$phone_number
    ->phoneNumber('777777777')
    ->iso(BulkGate\Sms\Country::CZECH_REPUBLIC);
```
