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 integer s, 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
- (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