date: 2023-12-07
Type: Cours
Projet: Blindcode
Cours: PHPPHP - Portée des Variables
La portée des variables fait référence à la partie du script où une variable peut être référencée ou modifiée. En PHP, il existe plusieurs niveaux de portée des variables, définissant l'endroit où une variable peut être utilisée. Examinons ces concepts.
if, else, elseif)Les variables déclarées à l'intérieur d'une structure conditionnelle sont généralement limitées à la portée de cette structure dans d'autres langages (signifie qu'elles ne peuvent pas être utilisées en dehors de la structure conditionnelle), mais pas en PHP. Voici un exemple :
<?php
if (true) {
$variableIf = "Je suis dans la condition if.";
}
// Tentative d'accéder à la variable en dehors de la structure conditionnelle
echo $variableIf;
// En PHP, ça marche !
?>
Dans cet exemple, $variableIf est déclarée à l'intérieur de la structure if et peut être utilisée en dehors de celle-ci ! Cela dit, c'est une mauvaise pratique, et je vous conseille de ne pas le faire !
for, while, do-while, foreach)Il en va de même avec les boucles. Voici un exemple :
<?php
for ($i = 0; $i < 3; $i++) {
$variableBoucle = "Je suis dans la boucle for.";
}
// Tentative d'accéder à la variable en dehors de la boucle.
echo $variableBoucle;
?>
Dans cet exemple, $variableBoucle est déclarée à l'intérieur de la boucle for et peut être utilisée en dehors de celle-ci. Comme pour les conditions, je vous conseille de ne pas faire ça !
Si vous déclarez une variable à l'extérieur d'une structure conditionnelle ou d'une boucle, elle peut généralement être utilisée à l'intérieur de ces structures, ainsi qu'en dehors. Voici un exemple :
<?php
$variableExterieure = "Je suis à l'extérieur de la structure conditionnelle.";
if (true) {
echo $variableExterieure; // OK
}
echo $variableExterieure; // OK
?>
Dans cet exemple, $variableExterieure est déclarée à l'extérieur de la structure if et peut être utilisée à l'intérieur et à l'extérieur de celle-ci.
Les fonctions ont leur propre portée de variables. Les variables déclarées à l'intérieur d'une fonction sont généralement locales à cette fonction, à moins qu'elles ne soient déclarées comme global pour les rendre globales.
<?php
function ExempleFonction() {
$variableLocale = "Je suis locale à cette fonction.";
echo $variableLocale;
}
exempleFonction();
// Tentative d'accéder à la variable locale en dehors de la fonction (causera une erreur)
// echo $variableLocale;
?>
Dans cet exemple, $variableLocale est locale à la fonction exempleFonction et ne peut pas être utilisée en dehors de celle-ci.
Les variables globales sont déclarées en dehors de toutes les fonctions et peuvent être utilisées à n'importe quel endroit du script, à la fois à l'intérieur et à l'extérieur des fonctions. Voici un exemple :
<?php
$variableGlobale = "Je suis globale.";
function ExemplePorteeGlobale() {
global $variableGlobale;
echo $variableGlobale;
}
// Appel de la fonction
exemplePorteeGlobale();
// Utilisation de la variable globale en dehors de la fonction
echo $variableGlobale;
?>
Dans cet exemple, $variableGlobale est une variable globale et peut être utilisée à la fois dans la fonction exemplePorteeGlobale et en dehors de cette fonction.
Les variables statiques conservent leur valeur même après la sortie d'une fonction. Elles sont déclarées en utilisant le mot-clé static. Voici un exemple :
<?php
function exemplePorteeStatique() {
static $variableStatique = 0;
echo $variableStatique . "<br>";
$variableStatique++;
}
// Appels répétés de la fonction
exemplePorteeStatique();
exemplePorteeStatique();
exemplePorteeStatique();
?>
Dans cet exemple, $variableStatique conserve sa valeur entre les appels successifs de la fonction exemplePorteeStatique.
Attention que les variables statiques sont encore une fois des données spéciales que nous explorerons dans le PHP orienté objet plus en particulier. De nouveau, on va préférer éviter cette méthode, mais sachez que ça existe.
PHP propose également des variables super globales qui sont accessibles partout dans le script, y compris dans les fonctions. Les exemples courants incluent $_POST, $_GET, et $_SESSION. Ces variables stockent des informations provenant de formulaires, des requêtes HTTP, ou des sessions, respectivement.
<?php
// Exemple avec la variable super globale $_POST
function traiterFormulaire() {
if (isset($_POST['nom'])) {
echo "Nom : " . $_POST['nom'];
}
}
// Appel de la fonction
traiterFormulaire();
?>
Dans cet exemple, $_POST est une variable super globale contenant les données soumises via un formulaire, on explorera ça très bientôt dans la suite du cours.
Comprendre la portée des variables en PHP est essentiel pour éviter des erreurs potentielles et écrire un code clair et modulaire.
créé le 2023-12-07 à 11:29