Comprendre les superglobales PHP et la variable $_GLOBALS
PHP est un langage de script côté serveur populaire utilisé pour le développement web. Il fournit un certain nombre de superglobales, qui sont des variables intégrées toujours accessibles dans toutes les portées d'un script PHP. L'une de ces superglobales est la variable $GLOBALS, qui contient une référence à toutes les variables globales définies dans un script PHP.
Dans cet article, nous approfondirons la variable $GLOBALS et ses utilisations en programmation PHP.
Qu'est-ce que les superglobales PHP ?
Les superglobales en PHP sont des variables spéciales disponibles dans toutes les portées d'un script PHP. Cela signifie qu'elles peuvent être accessibles depuis n'importe quelle fonction, classe ou fichier, sans avoir à les déclarer comme variables globales.
Voici les superglobales en PHP :
$_GET: contient les données transmises au script via la chaîne de requête de l'URL.$_POST: contient les données transmises au script via une soumission de formulaire.$_COOKIE: contient les données transmises au script via des cookies.$_SESSION: contient les données stockées dans la session d'un utilisateur.$_REQUEST: contient les données transmises au script via la chaîne de requête de l'URL, une soumission de formulaire ou des cookies.$_SERVER: contient des informations sur le serveur et l'environnement.$_ENV: contient des informations sur l'environnement.$GLOBALS: contient une référence à toutes les variables globales définies dans un script PHP.
Qu'est-ce que la variable $GLOBALS en PHP ?
La variable $GLOBALS est une superglobale qui contient une référence à toutes les variables globales définies dans un script PHP. Cela signifie qu'avec la variable $GLOBALS, vous pouvez accéder à n'importe quelle variable globale depuis n'importe où dans votre script.
Voici un exemple d'utilisation de la variable $GLOBALS pour accéder à une variable globale :
Exemple PHP montrant comment la variable $GLOBALS peut être utilisée pour accéder à une variable globale
<?php
$x = 10;
$y = 20;
function add() {
global $x, $y;
return $x + $y;
}
echo add(); // 30
echo $GLOBALS['x']; // 10
echo $GLOBALS['y']; // 20
?>Dans cet exemple, la fonction add() utilise le mot-clé global pour accéder aux variables $x et $y. Cependant, au lieu d'utiliser le mot-clé global, vous pouvez également accéder à ces variables via la variable $GLOBALS.
Comment utiliser la variable $GLOBALS en PHP
La variable $GLOBALS est un outil puissant en programmation PHP qui permet d'accéder aux variables globales depuis n'importe quelle partie de votre script. Voici quelques façons d'utiliser la variable $GLOBALS :
Accéder aux variables globales
Comme nous l'avons vu dans l'exemple précédent, vous pouvez utiliser la variable $GLOBALS pour accéder à n'importe quelle variable globale définie dans votre script. Voici un autre exemple :
Accès PHP à n'importe quelle variable globale définie dans votre script
<?php
$name = "John Doe";
function greeting() {
global $name;
echo "Hello, " . $name;
}
greeting(); // Hello, John Doe
echo $GLOBALS['name']; // John Doe
?>Modifier les variables globales
La variable $GLOBALS peut également être utilisée pour modifier des variables globales. Cela peut être utile si vous devez apporter des modifications à une variable globale depuis l'intérieur d'une fonction ou d'une classe.
Voici un exemple :
Modification de variables globales en PHP
<?php
$counter = 0;
function increment() {
global $counter;
$counter++;
}
increment();
echo $counter; // 1
echo "\n";
$GLOBALS['counter'] = 10;
echo $counter; // 10
?>Dans cet exemple, la fonction increment() incrémente la valeur de la variable $counter. Cependant, vous pouvez également modifier la valeur de la variable $counter directement via la variable $GLOBALS.
Transmettre des variables entre fonctions et classes
La variable $GLOBALS peut également être utilisée pour transmettre des variables entre des fonctions et des classes. Cela peut être utile si vous devez partager des données entre différentes parties de votre script.
Voici un exemple :
Transmission de variables globales entre fonctions et classes en PHP
<?php
$data = array("name" => "John Doe", "age" => 30);
function display_data() {
global $data;
print_r($data);
}
class User {
function show_data() {
global $data;
print_r($data);
}
}
display_data(); // Array ( [name] => John Doe [age] => 30 )
$user = new User();
$user->show_data(); // Array ( [name] => John Doe [age] => 30 )
$GLOBALS['data']['email'] = "[email protected]";
display_data(); // Array ( [name] => John Doe [age] => 30 [email] => [email protected] )
$user->show_data(); // Array ( [name] => John Doe [age] => 30 [email] => [email protected] )
?>Dans cet exemple, la fonction display_data() et la classe User accèdent toutes deux à la variable $data via la variable $GLOBALS. Cela vous permet de transmettre la variable $data entre les différentes parties de votre script.
Conclusion
La variable $GLOBALS est un outil puissant en programmation PHP qui permet d'accéder à toutes les variables globales définies dans un script PHP. Que vous souhaitiez accéder, modifier ou transmettre des variables entre des fonctions et des classes, la variable $GLOBALS est un outil polyvalent qui peut vous aider à écrire un meilleur code PHP.
Note sur les bonnes pratiques : Bien que $GLOBALS soit utile, s'appuyer fortement sur des variables globales est généralement déconseillé dans le développement PHP moderne. Envisagez d'utiliser l'injection de dépendances, des classes ou le passage de variables en arguments de fonction pour une meilleure maintenabilité, encapsulation et testabilité.
Pratique
En PHP, quels sont les types de variables disponibles dans une portée globale ?