Tout d'abord, regardons un morceau de code
<?php $a = 1 ; /* global scope */ function Test () { echo $a ; /* reference to local scope variable */ } Test (); ?>
Ce script n'aura aucune sortie, car l'instruction echo fait référence à une version locale de la variable $a, et c'est dans ce cadre, aucune valeur ne lui est attribuée. Vous remarquerez peut-être que les variables globales de PHP sont un peu différentes du langage C. En langage C, les variables globales prennent automatiquement effet dans les fonctions à moins qu'elles ne soient remplacées par des variables locales. Cela peut poser des problèmes, quelqu'un peut accidentellement modifier une variable globale. Les variables globales en php doivent être déclarées globales lorsqu'elles sont utilisées dans des fonctions.
mot-clé global
Tout d'abord, un exemple d'utilisation de global, le code est le suivant :
<?php $a = 1 ; $b = 2 ; function Sum () { global $a , $b ; $b = $a + $b ; } Sum (); echo $b ; ?>
La sortie du script ci-dessus sera "3". Une fois les variables globales $a et $b déclarées dans une fonction, toutes les références à l'une ou l'autre variable pointeront vers sa version globale. PHP n'a pas de limite sur le nombre maximum de variables globales qu'une fonction peut déclarer.
La deuxième façon d'accéder aux variables dans la portée globale consiste à utiliser un $GLOBALS array personnalisé PHP spécial. L'exemple précédent peut s'écrire :
Exemple n°2 Utilisez $GLOBALS au lieu de global, le code est le suivant :
<?php $a = 1 ; $b = 2 ; function Sum () { $GLOBALS [ 'b' ] = $GLOBALS [ 'a' ] + $GLOBALS [ 'b' ]; } Sum (); echo $b ; ?>
$GLOBALS est un tableau associatif, chaque variable est un élément, et le nom de la clé correspond Nom de la variable, la valeur correspond au contenu de la variable. La raison pour laquelle $GLOBALS existe dans la portée globale est que $GLOBALS est une variable superglobale. L'exemple suivant montre l'utilisation de variables superglobales :
Exemple n° 3 Exemple illustrant les variables superglobales et leur portée
<?php function test_global () { // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。 global $HTTP_POST_VARS ; echo $HTTP_POST_VARS [ 'name' ]; // Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 echo $_POST [ 'name' ]; } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!