Dans un script PHP tout comme dans la plupart de langage de programmation, une variable à un cycle de vie. Sa création, définition ou déclaration

$mavariable ;

Son affectation ou initialisation

$mavariable = 1 ;

Sa destruction

unset($mavariable) ; //La destruction d’une variable intervient aussi à la fin de l’exécution du script.

De sa déclaration à sa destruction, une variable peut subir plusieurs actions.

  • Elle peut être redéfinie
  • Elle peut être modifiée
  • Elle peut être affichée
  • Etc…

Mais tant bien même définie dans un script ou un fichier PHP, une variable a une portée, c’est-à-dire une variable a l’endroit où elle peut être utilisée et un autre où elle est inconnue ou indéfinie même si elle était définie précédemment.

Ces endroits, c’est ce que je vous propose de découvrir dans la suite de cet article. Cela nous amène à une notion de la programmation qu’on appelle la portée de variable .

Sorte de variable

En PHP, il y a de manière générale 3 sortes de variable :

  • Variable locale : Sont des variables définies et disponible que dans une fonction, closure ou méthode
  • Variable globale : Sont des variables définies et disponibles en dehors d’une fonction.
  • Variable super globale : Sont des variables définies et disponible partout. A l’intérieur ou à l’extérieur d’une fonction.

Variable locale

Les variables globales sont celles qui sont définies dans une fonction, un closure ou méthode. La portée de ces variables sont donc locales, c’est-à-dire qu’ils ne peuvent être utilisées que dans le scope (entre accolade) de cette fonction.

<?php
$a = 1 ;

function c(){

  $a  = 5 ;
  $b = 3 ;

  echo $a + $b ;

}

c() ; //affiche 8 ;

echo $a //Affiche 1 ;

echo $b ; //Déclenche l’erreur de type E_NOTICE avec comme message, variable indéfinie.

Dans cet exemple, la variable $b est locale (disponible que dans la fonction a) et il y a deux variables $a, celle locale qui égale 5 et l’autre qui est globale qui équivaut à 1 ;

Variable globale

Une variable globale est celle qui est accessible partout dans un script PHP sauf dans des méthodes, fonctions ou closures. C’est à peu près le contraire des variables locales.

<?php

$a = 5 ;

function b(){

  echo $a ;

}

echo $a ; //Affiche 5

b() ; 
/*
Déclenche une exception E_NOTICE, variable $a indéfinie car 
la variable $a n'est pas disponible à l'intérieur de la fonction b
*/

Cependant, il est possible d’avoir accès aux variables globales à l’intérieur d’une fonction. Deux choix nous est possibles :

Via le mot clé global

<?php

$a = 5 ;

function b(){

global $a ;

 echo $a ;

}

echo $a ; //Affiche 5

b() ; // Affiche 5

Via la variable $GLOBALS

Toutes les variables déclarées dans un script PHP sont aussi ajoutées dans la variable $GLOBALS qui est un tableau associatif où les clés sont les noms de variables et les valeurs sont les valeurs de ces variables.

Exemple :

<?php
$nom = "Mbungu";

print_r($GLOBALS);

Va afficher

Array
(
   //...
   [nom] => Mbungu
)

Ce qui veut dire qu’on peut très bien récupérer la valeur d’une variable déclarée à l’extérieur d’une fonction vu que $GLOBALS est une variable super globale dont on en parle dans le prochain point

<?php

$a = 5 ;

function b(){

 echo $GLOBALS[‘a’] ;

}

echo $a ; //Affiche 5

b() ; //   Affiche 5

Variable super globale

Les variables super globale sont celles qui sont accessible partout dans un script PHP. Elles font partie des variables prédéfinies. Elles sont donc au nombre de 9 :

  1. $GLOBALS Contient toutes les variables globales et super globales définie dans un script. On en a parlé
  2. $_SERVER Contient les informations sur le serveur telle que l’IP du serveur et l’exécution du fichier PHP telle que le nom du fichier PHP
  3. $_GET Contient toutes les variables passées dans un url. ex : index.php?variable1=valeur1&variable2=valeur2
  4. $_POST Contient toutes les données envoyées par la méthode POST, le cas de formulaire HTML.
  5. $_FILES Contient tous les fichiers soumis par les formulaires.
  6. $_COOKIE Contient tous les cookies définis à l’aide de la fonction setcookie()
  7. $_SESSION Contient tous les sessions définis
  8. $_REQUEST Contient les contenus de $_GET, $_POST et $_COOKIE
  9. $_ENV Contient toutes les variables d’environnement

Ces variables peuvent être appelées n’importe où dans un script PHP.

Et prend fin cet article, j’espère qu’il ne vous a pas autant ennuyer, pour n’importe quelle question, je vous répond aux commentaires.

Catégorisé:

Étiqueté dans :

,