En PHP, chaque expression a l'un des types intégrés suivants en fonction de sa valeur :
PHP est un langage typé dynamiquement, ce qui signifie que par défaut, il n'est pas nécessaire de spécifier le type d'une variable, car cela sera déterminé au moment de l'exécution. Cependant, il est possible de typer statiquement certains aspects du langage en utilisant les déclarations de type. Différents types pris en charge par le systÚme de types de PHP sont disponibles sur la page du systÚme de types.
Les types limitent le type d'opĂ©rations qui peuvent ĂȘtre effectuĂ©es sur eux. Cependant, si une expression/variable est utilisĂ©e dans une opĂ©ration que son type ne supporte pas, PHP tentera de jongler de type dans un type compatible avec l'opĂ©ration. Ce processus dĂ©pend du contexte dans lequel la valeur est utilisĂ©e. Pour plus dâinformations, consulter la section sur le jonglage de type.
Les tableaux de comparaison de type peuvent Ă©galement ĂȘtre utiles, car divers exemples de comparaison entre des valeurs de diffĂ©rents types sont prĂ©sents.
Note: Il est possible de forcer lâĂ©valuation dâune expression Ă un certain type en utilisant un type casting. Une variable peut Ă©galement ĂȘtre convertie sur place Ă lâaide de la fonction settype().
Pour vérifier le type et la valeur d'une
expression, utiliser la fonction
var_dump().
Pour récupérer le type d'une
expression,
utiliser la fonction get_debug_type().
Toutefois, pour vérifier si une expression est d'un certain type, utiliser
plutĂŽt les fonctions
is_type.
Exemple #1 Types Différents
<?php
$a_bool = TRUE; // un booléen
$a_str = "foo"; // une chaĂźne de caractĂšres
$a_str2 = 'foo'; // une chaĂźne de caractĂšres
$an_int = 12; // un entier
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Si c'est un entier, incrément de 4
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Si $a_bool est une chaĂźne de caractĂšres, on l'affiche
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>Résultat de l'exemple ci-dessus en PHP 8 :
bool string int(16)
Note: Avant PHP 8.0.0, lorsque le get_debug_type() nâest pas disponible, la fonction gettype() peut ĂȘtre utilisĂ©e Ă la place. Cependant, elle nâutilise pas les noms de type canoniques.