Introduction

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.

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, consultez la section sur le jonglage de type.

Astuce

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, utilisez 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, utilisez plutôt les fonctions is_type.

<?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 gettype($a_bool); // affiche : boolean
echo gettype($a_str); // affiche : string

// Si c'est un entier, incrément de 4
if (is_int($an_int)) {
$an_int += 4;
}

// 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: Antérieur à 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.

add a note add a note

User Contributed Notes 1 note

up
0
kuzawinski dot marcin_NOSPAM at gmail dot com
4 years ago
No, despite description here a `callable` still is not a a full-fledged primitive type in PHP.

<?php

function testFunc() { }

class
testClass {
   
    public function
__invole() { }
   
    public static function
testStaticMethod() { }
   
    public function
testMethod() { }
}

$o = new testClass();
$lambda = function() { };

$c1 = 'testFunc';
$c2 = ['testClass', 'testStaticMethod'];
$c3 = [$o, 'testMethod'];
$c4 = $lambda;
$c5 = $o;

var_dump(is_callable($c1));  // TRUE
var_dump(is_callable($c2));  // TRUE
var_dump(is_callable($c3));  // TRUE
var_dump(is_callable($c4));  // TRUE
var_dump(is_callable($c5));  // TRUE

var_dump(gettype($c1)); // string(6) "string"
var_dump(gettype($c2)); // string(5) "array"
var_dump(gettype($c3)); // string(5) "array"
var_dump(gettype($c4)); // string(6) "object"
var_dump(gettype($c5)); // string(6) "object"

?>
To Top