Maison >développement back-end >tutoriel php >mot-clé global et utilisation de $GLOBALS en php

mot-clé global et utilisation de $GLOBALS en php

怪我咯
怪我咯original
2017-06-19 16:04:485977parcourir

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 [ &#39;b&#39; ] =  $GLOBALS [ &#39;a&#39; ] +  $GLOBALS [ &#39;b&#39; ];
}

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",它们需要用 &#39;global&#39; 关键字来使它们在函数的本地区域中有效。
     global  $HTTP_POST_VARS ;
    echo  $HTTP_POST_VARS [ &#39;name&#39; ];
     // Superglobals 在任何范围内都有效,它们并不需要 &#39;global&#39; 声明。Superglobals 是在 PHP 4.1.0 引入的。
     echo  $_POST [ &#39;name&#39; ];
}
?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn