PHP 8.4 Essentials
Thème :
Junior
1 vues ·12/23 leçons

La Portée des Variables en PHP

La portée (scope) détermine où une variable peut être utilisée. La comprendre évite des bugs et aide à organiser le code.

Portée Locale

Les variables déclarées à l’intérieur d’une fonction sont locales :

<?php
function test() {
    $varLocale = "Je suis locale !";
    echo $varLocale; // Fonctionne
}

test();
echo $varLocale; // Erreur ! Non définie en dehors de la fonction

Portée Globale

Les variables déclarées en dehors des fonctions ont une portée globale :

<?php
$varGlobale = "Je suis globale !";

function test() {
    echo $varGlobale; // Erreur ! Non accessible directement
}

Accéder aux Variables Globales (À utiliser avec parcimonie)

Avec le mot-clé global :

<?php
$compteur = 0;

function incrementer() {
    global $compteur; // Référencer la variable globale
    $compteur++;
}

incrementer();
echo $compteur; // 1

Avec le tableau $GLOBALS :

<?php
$nom = "Jean";

function saluer() {
    echo "Bonjour, " . $GLOBALS['nom'];
}

saluer(); // Bonjour, Jean

Attention : Les variables globales rendent le code plus difficile à tester et à maintenir. Préférez toujours passer des paramètres !

Variables Statiques

Conservent leur valeur entre les appels de fonction :

<?php
function compterAppels() {
    static $count = 0; // Initialisée une seule fois
    $count++;
    return $count;
}

echo compterAppels(); // 1
echo compterAppels(); // 2
echo compterAppels(); // 3

Bonne Pratique : Passer des Paramètres

Plutôt que des globales, transmettez ce dont vous avez besoin :

<?php
// Mauvaise pratique : utiliser une globale
$config = ['debug' => true];

function journaliser($message) {
    global $config;
    if ($config['debug']) {
        echo $message;
    }
}

// Bonne pratique : passer en paramètre
function journaliser(string $message, bool $debug = false): void {
    if ($debug) {
        echo $message;
    }
}

Ressources


📘 Cette leçon fait partie du cours PHP Essentials sur la plateforme d’apprentissage RostoDev.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur La Portée des Variables en PHP. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.