Debutant php PHP 15 min de lecture

Types de données PHP

Types de données PHP

Comprendre les types de données PHP

Dans notre première exploration de PHP, nous avons déjà rencontré le concept de stockage d'informations dans des variables. Par exemple, nous pourrions stocker un nom sous forme de texte et un score sous forme de nombre. Ces morceaux d'informations appartiennent à différentes catégories appelées types de données. PHP, comme la plupart des langages de programmation, fournit un ensemble de types de données intégrés pour représenter différents types de données. Il existe dix types de données fondamentaux en PHP, que nous pouvons classer globalement en types scalaires, composés et spéciaux. Cette leçon se concentrera principalement sur les types de données les plus couramment utilisés.

Examinons rapidement la liste des types de données PHP :

  • String
  • Integer
  • Float
  • Boolean
  • Resource
  • Iterable
  • Callable
  • Object
  • Array
  • NULL

Nous nous concentrerons sur les quatre premiers, connus sous le nom de types de données scalaires, qui représentent des valeurs uniques. Nous aborderons également le type NULL. Plus tard, vous explorerez les types de données composés tels que les tableaux et les objets, et nous mentionnerons brièvement les types spéciaux moins courants.

Les types de données scalaires en détail

Décomposons ces types de données scalaires essentiels :

  • Chaîne de caractères : Représente des données textuelles. Pensez à des noms, des adresses, ou toute séquence de caractères. Par exemple, "Bonjour le monde !" est une chaîne de caractères.
  • Entier : Représente des nombres entiers, sans aucune composante décimale. Des exemples incluent -5, 0, et 100.
  • Flottant : Représente des nombres qui ont une composante décimale. Ceux-ci sont également connus sous le nom de nombres à virgule flottante. Des exemples incluent 3.14, -2.7, et 0.5.
  • Booléen : Représente des valeurs de vérité. Un booléen ne peut avoir que deux valeurs : true ou false. Ceci est incroyablement utile pour contrôler le flux d'un programme (par exemple, vérifier si un utilisateur est connecté).

Finalement, nous avons NULL, qui représente l'absence de valeur.

Exploration interactive des types de données

Pour se faire une idée du fonctionnement de ces types de données, utilisons le mode interactif de PHP. C'est un moyen pratique pour tester des lignes de code PHP individuelles et voir les résultats immédiatement, sans avoir besoin de créer un fichier PHP complet.

Pour entrer en mode interactif, tapez simplement php -a dans votre terminal ou votre invite de commandes. Vous êtes maintenant prêt à expérimenter !

Essayons un exemple simple :

php > $username = "matt";
php > print gettype($username);
string

Dans cet exemple, nous assignons la chaîne de caractères "matt" à une variable nommée $username. Ensuite, nous utilisons la fonction gettype() pour déterminer le type de données de la variable. Comme vous pouvez le constater, elle identifie correctement $username comme une string. Cette approche interactive sera inestimable au fur et à mesure que nous continuerons à explorer PHP.

Types de données PHP : Nombres et Booléens

Revoyons le concept de types de données à l'aide d'un exemple simple. Nous allons attribuer la valeur de chaîne de caractères "matt" à une variable nommée $username. Ensuite, nous utiliserons la fonction intégrée gettype() de PHP pour déterminer et afficher le type de données de la variable. Cela confirmera que $username contient une valeur de chaîne de caractères.

Si vous êtes familier avec les langages de programmation tels que Java ou C#, vous êtes probablement habitué à déclarer explicitement le type de données d'une variable. PHP gère cela différemment. C'est un langage faiblement typé, ce qui signifie qu'une seule variable peut contenir des valeurs de différents types de données au fil du temps. PHP détermine automatiquement le type de données en fonction de la valeur qui lui est attribuée.

Bien qu'il soit possible de définir explicitement les types de données en PHP (nous explorerons cela plus en détail plus tard, lorsque nous commencerons à écrire des fonctions), pour l'instant, nous nous appuierons sur l'inférence automatique des types de PHP pour nos simples affectations de variables.

Examinons les types de données numériques. Vous pouvez affecter des nombres entiers (comme 21) ou des nombres avec des décimales (comme 9.99) à des variables, et PHP les interprétera correctement.

<?php
$age = 21;
echo gettype($age); // Output: integer

$price = 9.99;
echo gettype($price); // Output: double
?>

Notez que $age est reconnu comme un integer, et $price est reconnu comme un double. Il est important de comprendre que, bien que gettype() renvoie "double" pour les nombres à virgule flottante, PHP n'a qu'un type de données à virgule flottante sous-jacent : float. La valeur de retour "double" de gettype() est un artefact historique des origines de PHP en tant que langage plus ancien, faisant référence au format virgule flottante double précision utilisé en interne. Ne vous préoccupez pas de la distinction ; tous les nombres à virgule flottante en PHP sont fondamentalement des floats.

Maintenant, examinons le type de données bool, qui représente les valeurs vrai/faux.

<?php
$isDutyFree = true;
echo gettype($isDutyFree); // Output: boolean
echo $isDutyFree; // Output: 1
?>

Lorsque vous utilisez gettype() sur la variable $isDutyFree, vous verrez "boolean" affiché. PHP utilise l'alias "boolean" pour le type de données bool, et bien qu'ils soient largement interchangeables, il est préférable d'utiliser de manière cohérente bool dans votre code. Je le ferai dans ce guide.

Une observation curieuse se présente lorsque vous essayez d'afficher la valeur de $isDutyFree. Au lieu de "true", vous voyez le nombre 1. Ce n'est pas une erreur ; c'est la façon dont PHP représente les valeurs booléennes lors de leur affichage. true est équivalent à 1, et false est équivalent à 0.

Affichage des valeurs booléennes et introduction de NULL

Lorsque vous utilisez la fonction print en PHP, le moteur convertit automatiquement n’importe quelle valeur que vous fournissez en une chaîne de caractères. Les valeurs booléennes sont traitées de manière spécifique lors de cette conversion : true devient la chaîne de caractères "1", tandis que false se transforme en une chaîne vide (représentée par ""). Cette conversion automatique peut parfois masquer la valeur booléenne réelle.

Pour déterminer avec précision le type de données et la valeur d’une variable booléenne, utilisez la fonction var_dump(). Cette fonction fournit des informations détaillées sur une variable, notamment son type et sa valeur. C’est un outil précieux pour apprendre PHP et pour identifier les problèmes dans votre code.

Règles Cruciales

<?php
$isDutyFree = true;
var_dump($isDutyFree);
?>

Ce code affichera : bool(true), confirmant que $isDutyFree est bien un booléen et que sa valeur est true.

Comprendre le Type de Données NULL

PHP inclut également un type de données spécial appelé NULL. Il représente l'absence de valeur. Vous pouvez utiliser soit NULL soit null (la casse n'a pas d'importance) pour désigner ce type. Une variable peut être considérée comme NULL dans quelques situations.

Premièrement, si une variable n'a pas encore reçu de valeur, tenter de l'inspecter avec var_dump() générera un avertissement indiquant que la variable est non définie, suivi de la valeur NULL.

Deuxièmement, une variable est affectée de la valeur NULL lorsque vous la définissez explicitement à NULL :

<?php
$firstName = NULL;
var_dump($firstName);
?>

Ceci affichera : NULL.

Il est important de distinguer une variable qui n'a pas été affectée d'une valeur (ce qui entraîne un avertissement de var_dump()) et une variable qui a été explicitement affectée de la valeur NULL. Les deux représentent finalement une absence de valeur significative, mais la manière dont PHP les gère en termes d'avertissements diffère. Affecter une variable à la valeur NULL est parfaitement valide et fonctionne de manière similaire à l'affectation d'un autre type de données.

Comprendre les types de données PHP et les valeurs nulles

En PHP, chaque donnée avec laquelle vous travaillez est associée à un type de données. Ces types dictent le type d'opérations que vous pouvez effectuer et la manière dont PHP interprète les données. Bien que nous soyons déjà familiarisés avec les types courants tels que les chaînes de caractères, les entiers et les booléens, il est crucial de comprendre comment PHP gère les situations où une variable ne contient pas de valeur significative. Cela se manifeste souvent par NULL.

Une variable devient NULL lorsqu'elle est explicitement effacée. Vous pouvez y parvenir en utilisant la fonction intégrée unset(). Lorsqu'une variable est NULL, elle se comporte comme si elle n'existait jamais. Tenter d'afficher une variable NULL entraînera un avertissement indiquant une variable non définie.

Dans les applications plus complexes, il est probable que vous rencontriez des valeurs NULL. Par exemple, une connexion à une base de données pourrait échouer et être affectée de NULL, ou une fonction pourrait être censée renvoyer un objet, mais cet objet n'existe pas. Nous allons explorer comment gérer ces situations dans les sections ultérieures, lorsque nous plongerons dans la programmation orientée objet et les interactions avec les bases de données. Gérer correctement les valeurs NULL est une compétence essentielle pour écrire du code PHP robuste.

Vérification des types de données des variables

PHP fournit une suite de fonctions qui vous permettent de déterminer le type de données d'une variable. Ces fonctions renvoient soit true (vrai) soit false (faux), selon que la variable correspond ou non au type spécifié. Ceci est extrêmement utile pour valider des données ou pour s’assurer que vous effectuez des opérations appropriées au type de la variable.

Certaines des fonctions de vérification de type les plus couramment utilisées incluent : is_string(), is_int(), is_float(), is_bool(), et is_null(). Examinons quelques exemples :

Dans l'exemple ci-dessus, $gpa contient un nombre à virgule flottante (un nombre avec une décimale). Par conséquent, seule is_float() renvoie true. Inversement, $middleName contient explicitement la valeur NULL, qui est correctement identifiée par is_null(). Ces fonctions fournissent un moyen fiable de vérifier les types de données et d'écrire un code plus sûr et plus prévisible.