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 "10 Little Piggies"// $foo est un entier (15)
$foo "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 :

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 :


Les types
PHP Manual