Variables et pseudo-types utilisés dans cette documentation
Les variables
Les types
PHP Manual

## Manipulation des types

PHP n'impose pas de définir explicitement le type d'une variable lors de sa déclaration ; le type d'une variable est déterminé par son contexte d'utilisation. Si une valeur de type string est assignée à la variable $var, $var devient de type string. Si une valeur de type integer est ensuite assignée à cette variable $var, alors, son type devient integer.

Un exemple de conversion de type automatique avec PHP est l'ajout de l'opérateur '+'. Si une des opérandes est de type float, alors toutes les opérandes seront évaluées comme de types float, et le résultat sera de type float. Sinon, les opérandes seront interprétées comme integers, et le résultat sera également de type integer. Noter que cela ne modifie pas le type des opérandes ; la seule modification est la façon dont les opérandes sont évaluées et le type de l'expression elle-même.

`<?php
$foo = "0"; // $foo est une chaîne de caractères (ASCII 48)
$foo += 2; // $foo est maintenant un entier (2)
$foo = $foo + 1.3; // $foo est maintenant un nombre à virgule flottante (3.3)
$foo = 5 + "10 Little Piggies"; // $foo est un entier (15)
$foo = 5 + "10 Small Pigs"; // $foo est un entier (15)
?>`

Si les 2 derniers exemples vous semblent compliqués, reportez-vous à la section sur les conversions de chaînes en nombres.

Pour forcer une variable à être évaluée en un certain type, reportez-vous à la section sur le transtypage. Pour changer le type d'une variable, reportez-vous à la fonction settype().

Pour tester les exemples de cette section, utilisez la fonction var_dump().

> Note: Le comportement d'une conversion automatique en tableau est actuellement non-défini.
> De plus, vu que PHP supporte l'indexation des chaînes de caractères via des positions en utilisant la même syntaxe que pour les tableaux, l'exemple suivant est correct pour tous les versions de PHP :

> `<?php
> $a = 'car'; // $a est une chaîne de caractères
> $a[0] = 'b'; // $a est toujours une chaîne de caractères
> echo $a; // bar
> ?>`

> Reportez-vous à la section sur l'accès aux chaînes par ces caractères pour plus d'informations.

### Modification de types

La modification de types en PHP fonctionne de la même façon qu'en C : le nom du type désiré est écrit entre parenthèses avant la variable à traiter.

`<?php
$foo = 10; // $foo est un entier
$bar = (boolean) $foo; // $bar est un booléen
?>`

Les préfixes autorisés sont :

- (int), (integer) : modification en integer
- (bool), (boolean) : modification en boolean
- (float), (double), (real) : modification en float
- (string) : modification en string
- (binary) : modification en string binaire (PHP 6)
- (array) : modification en array
- (object) : modification en object
- (unset) : modification en NULL (PHP 5)

La modification en binaire et le préfixe b ont été ajoutés en PHP 5.2.1

Notez que les tabulations et les espaces sont autorisés dans les parenthèses. Les exemples suivants sont fonctionnellement équivalents :

`<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>`

Modification d'une chaîne littérale et de variables en chaînes binaires :

`<?php
$binary = (binary) $string;
$binary = b"binary string";
?>`

> Note: Au lieu de modifier une variable en chaîne, il est également possible d'entourer la variable de doubles guillemets.

> `<?php
> $foo = 10; // $foo est un entier
> $str = "$foo"; // $str est une chaîne
> $fst = (string) $foo; // $fst est également une chaîne
> // Ceci affichera "ils sont identiques"
> if ($fst === $str) {
> echo "ils sont identiques";
> }
> ?>`

Le comportement d'une modification de type n'est pas toujours identique suivant les types. Pour plus d'informations, reportez-vous à ces sections :

- Conversion en booléen
- Conversion en entier
- Conversion en nombre à virgule flottante
- Conversion en chaîne de caractères
- Conversion en tableau
- Conversion en objet
- Conversion en ressource
- Conversion en valeur NULL
- Les tables de comparaison de type

Variables et pseudo-types utilisés dans cette documentation
Les variables
Les types
PHP Manual