En PHP, les variables servent à conserver des informations. Étant un langage à typage dynamique et faible, PHP ne requiert pas de spécifier explicitement le type d'une variable lors de sa déclaration. Le moteur PHP déduit automatiquement le type de la variable en fonction de la valeur qui lui est assignée. Cette souplesse facilite le développement, mais nécessite une bonne compréhension des mécanismes sous-jacents.
Règles de Nomination
Pour nommer une varible en PHP, il faut respecter certaines conventions :
- Tous les noms de variables doivent commencer par le symbole dollar (
$). - Le premier caractère suivant le
$doit être une lettre (a-z,A-Z) ou un underscore (_). - Les caractères suivants peuvent être des lettres, des chiffres (
0-9) ou des underscores. - PHP est sensible à la casse (
$maVariableest différente de$mavariable).
Déclaration et Assignation
En PHP, une varible est déclarée et initialisée simultanément par l'assignation d'une valeur. Le symbole $ est obligatoire pour préfixer tout nom de variable.
<?php
$ageUtilisateur = 30; // Type entier (int)
$tauxTVA = 20.5; // Type flottant (float)
$messageAccueil = "Bienvenue sur notre site !"; // Type chaîne de caractères (string)
$estConnecte = false; // Type booléen (bool)
$listeElements = ['pomme', 'poire', 'banane']; // Type tableau (array)
$donneeAbsente = null; // Type nul (null)
?>
Les Types de Données
PHP prend en charge une panoplie de types de données pour stocker diverses natures d'informations :
- Scalaires :
- Entiers (
int) : Nombres sans décimales. - Flottants (
floatoudouble) : Nombres à virgule flottante. - Chaînes de caractères (
string) : Séquences de caractères. - Booléens (
bool) : Représententtrueoufalse.
- Entiers (
- Composés :
- Tableaux (
array) : Collections de valeurs. - Objets (
object) : Instances de classes.
- Tableaux (
- Spéciaux :
- Ressources (
resource) : Références à des ressources externes (fichiers, bases de données). - Null (
null) : Indique l'absence de valeur ou une variable non assignée.
- Ressources (
Portée des Variables
La portée (ou 'scope') d'une variable détermine où elle peut être accessible et utilisée dans un script. PHP définit plusieurs types de portées :
- Locale : Les variables déclarées à l'intérieur d'une fonction ne sont accessibles qu'au sein de cette fonction.
- Globale : Les variables définies en dehors de toute fonction sont globales. Elles sont accessibles partout dans le script, sauf directement à l'intérieur des fonctions sans l'utilisation du mot-clé
globalou du tableau$GLOBALS. - Statique : Déclarées avec le mot-clé
staticau sein d'une fonction, ces variables conservent leur valeur entre les appels successifs de la fonction, au lieu d'être réinitialisées. - Superglobales : Ce sont des variables prédéfinies par PHP (ex:
$_GET,$_POST,$_SESSION,$_SERVER) qui sont toujours disponibles, quel que soit le contexte d'exécution.
Voici un exemple illustrant ces concepts :
<?php
$parametreGlobal = "Valeur accessible globalement"; // Variable globale
function traiterIncrementation() {
$donneeLocale = "Information spécifique à la fonction"; // Variable locale
static $compteurAppels = 0; // Variable statique
$compteurAppels++;
echo "Donnée locale : " . $donneeLocale . "<br>\n";
echo "Compteur d'appels (statique) : " . $compteurAppels . "<br>\n";
// Pour accéder à une variable globale depuis une fonction :
global $parametreGlobal;
echo "Paramètre global (via global) : " . $parametreGlobal . "<br>\n";
// Alternativement, via le tableau $GLOBALS
echo "Paramètre global (via \$GLOBALS) : " . $GLOBALS['parametreGlobal'] . "<br>\n";
}
traiterIncrementation(); // Premier appel
traiterIncrementation(); // Deuxième appel
?>
Références de Variables
Il est possible de créer une référence à une variable, ce qui signifie que deux variables pointent vers la même donnée en mémoire, plutôt que d'en faire une copie. Toute modification apportée à l'une affectera l'autre. Le symbole & est utilisé pour créer une référence.
<?php
$montantOriginal = 150;
$referenceMontant = &$montantOriginal; // $referenceMontant est une référence à $montantOriginal
echo "Montant original initial : " . $montantOriginal . "<br>\n"; // Affiche 150
echo "Référence au montant initial : " . $referenceMontant . "<br>\n"; // Affiche 150
$referenceMontant = 300; // Modifier la référence modifie la variable originale
echo "Montant original après modification via référence : " . $montantOriginal . "<br>\n"; // Affiche 300
echo "Référence au montant après modification : " . $referenceMontant . "<br>\n"; // Affiche 300
?>
Variables Variables
PHP offre une fonctionnalité appelée "variables variables", où le nom d'une variable peut être déterminé dynamiquement par la valeur d'une autre variable.
<?php
$nomCle = "message";
$$nomCle = "Ceci est un message dynamique !"; // Équivalent à $message = "Ceci est un message dynamique !";
echo "La variable dynamique \$message contient : " . $message . "<br>\n"; // Affiche : Ceci est un message dynamique !
// Un autre exemple
$fruitPrefere = "Pomme";
$nomVariableFruit = "type_" . $fruitPrefere; // $nomVariableFruit devient "type_Pomme"
$$nomVariableFruit = "Fibreux et Juteux"; // Équivalent à $type_Pomme = "Fibreux et Juteux";
echo "Description du type de " . $fruitPrefere . " : " . $type_Pomme . "<br>\n";
?>