W3docs

Gestion des variables PHP

Apprenez à créer, inspecter, copier et supprimer des variables PHP : isset, gettype, settype, références et variables dynamiques.

Introduction

La gestion des variables désigne l'ensemble des techniques utilisées pour créer, inspecter, copier et supprimer les valeurs manipulées par votre script PHP. Cette page va au-delà de la simple affectation d'une valeur : elle couvre la vérification de l'existence d'une variable (isset), la découverte et la modification de son type (gettype / settype), la création de références, et les fonctionnalités plus dynamiques offertes par PHP — les variables variables et les fonctions variables.

Si vous n'avez jamais déclaré de variable PHP, commencez par PHP Variables et PHP Data Types, puis revenez ici pour les techniques de gestion.

Déclarer et affecter des variables

En PHP, un nom de variable commence par un signe dollar ($) suivi d'une lettre ou d'un underscore. Vous n'avez pas à déclarer un type — PHP l'infère à partir de la valeur que vous affectez avec l'opérateur =.

<?php
$name  = "John";   // string
$age   = 30;        // integer
$price = 19.99;     // float
$active = true;     // boolean

PHP est dynamiquement typé : une même variable peut contenir une string maintenant et un nombre plus tard. La variable prend simplement le type de la dernière valeur affectée.

Interpolation de chaînes

À l'intérieur des chaînes entre guillemets doubles (et des heredocs), PHP remplace une variable par sa valeur. Les chaînes entre guillemets simples sont traitées littéralement et n'effectuent pas d'interpolation.

php— editable, runs on the server

Vérifier et supprimer des variables

Avant de lire une variable qui pourrait ne pas exister, testez-la. Ces trois fonctions constituent le cœur d'une gestion sûre des variables :

FonctionRetourne true quand...
isset($var)la variable existe et n'est pas null
empty($var)la variable est non définie, null, 0, "", "0", false, ou []
unset($var)(pas de retour) détruit la variable pour que isset devienne false
<?php
$user = null;
var_dump(isset($user));   // bool(false) — null counts as "not set"

$count = 0;
var_dump(empty($count));  // bool(true)  — 0 is "empty"

$temp = 10;
unset($temp);
var_dump(isset($temp));   // bool(false) — destroyed

isset est la protection que vous utilisez le plus souvent, notamment avec les superglobales comme $_GET et $_POST où une clé peut être absente.

Inspecter et modifier les types

Parce que PHP infère les types, vous avez parfois besoin de savoir quel type une valeur possède actuellement, ou de forcer une conversion.

<?php
$price = 19.99;
echo gettype($price);     // double  (PHP's name for float)

$input = "42";
settype($input, "integer");
echo $input + 8;          // 50 — now a real integer, not the string "42"

Utilisez gettype pour obtenir un nom de type lisible et settype (ou un cast comme (int)) pour convertir en place. Pour les comparaisons, préférez les fonctions sensibles au type : is_int(), is_string(), is_array(), etc.

Gestion avancée des variables

Une fois les bases maîtrisées, PHP propose trois techniques dynamiques supplémentaires. Utilisez-les avec parcimonie — elles sont puissantes mais peuvent nuire à la lisibilité.

Références de variables

Une référence fait pointer deux noms vers la même valeur sous-jacente. Affectez avec =& et tout changement effectué via l'un des noms est visible via l'autre.

<?php
$count = 1;
$alias =& $count;   // $alias is now another name for $count
$alias = 5;
echo $count;        // 5 — changed through the reference

Les références sont particulièrement utiles lors du passage d'arguments à des fonctions par référence (function f(&$x)), permettant à la fonction de modifier la variable de l'appelant.

Variables variables

Une variable variable utilise la valeur d'une variable comme nom d'une autre. La syntaxe $$ lit la variable intérieure pour construire le nom extérieur.

<?php
$var = "greeting";
$$var = "Hello";     // creates $greeting
echo $greeting;      // Hello

Cela peut être pratique pour les noms de champs dynamiques, mais un tableau associatif est presque toujours plus clair et plus sûr.

Fonctions variables

Si une variable de type string contient un nom de fonction, l'ajout de () appelle cette fonction de manière dynamique.

<?php
$fn = "strlen";
echo $fn("Hello World");   // 11

Cela permet de créer des tables de dispatch et des callbacks simples. PHP moderne préfère généralement les callables de première classe ou les closures, mais les fonctions variables restent valides et performantes.

Bonnes pratiques

  • Utilisez des noms significatifs. $counter ou $totalPrice exprime l'intention bien mieux que $x ou $tmp.
  • Initialisez avant d'utiliser. La lecture d'une variable non définie génère un avertissement ; définissez une valeur par défaut ou protégez avec isset().
  • Évitez les globales. Passez les valeurs en arguments de fonction ou encapsulez l'état dans des objets plutôt que de vous appuyer sur global. Consultez Variables Scope pour comprendre l'importance de l'isolation de portée.
  • Préférez les tableaux aux variables variables. Ils sont plus faciles à itérer, déboguer et raisonner.
  • Utilisez les déclarations de type. Les paramètres typés (function setAge(int $age)) détectent les erreurs tôt et rendent le code auto-documenté.

Résumé

La gestion des variables PHP va au-delà de la simple affectation : elle inclut la vérification de l'existence avec isset/empty, la suppression de valeurs avec unset, l'inspection et la conversion de types avec gettype/settype, et les outils dynamiques — références, variables variables et fonctions variables. Privilégiez les techniques simples et explicites au quotidien, et réservez les outils dynamiques aux rares cas qui en ont réellement besoin.

Practice

Pratique
En PHP, lesquelles des propositions suivantes sont des manières de gérer les variables ?
En PHP, lesquelles des propositions suivantes sont des manières de gérer les variables ?

Practice

Pratique
En PHP, lesquelles des propositions suivantes sont des manières de gérer les variables ?
En PHP, lesquelles des propositions suivantes sont des manières de gérer les variables ?
Was this page helpful?