PHP utilise global pour définir une solution aux variables globales qui n'a aucun effet

怪我咯
Libérer: 2023-03-10 20:36:02
original
2627 Les gens l'ont consulté

La

variable définie par global est une variable globale. Par exemple, si la variable dans la fonction et la variable du même nom en dehors de la fonction ne sont pas la même variable dans. php, si nous utilisons global Si le nom de la variable qui est le même que celui externe est défini dans la fonction, alors c'est une variable Prenons quelques exemples pour illustrer.

Pour les débutants PHP, lorsque vous utilisez le mot-clé global, vous constaterez peut-être que la globalisation d'une variable en dehors d'une fonction au sein d'une fonction ne peut pas générer correctement la variable dans certains cas (c'est-à-dire que la variable globale n'est pas valide). Regardons un exemple simple et courant.

Ici, nous avons deux pages a.php et b.php.

Le code de la page b.php est le suivant :

 <?php 
    $site_name = &#39;CodePlayer&#39;; 
    function sayHi(){ 
        global $site_name; 
        echo "Hello! Welcome to $site_name !"; 
    } 
?>
Copier après la connexion

Le code de la page a.php est le suivant :

<?php 
    function include_view_page(){ 
        include &#39;b.php&#39;; 
        sayHi();                     
    } 
    include_view_page(); 
?>
Copier après la connexion

L'exemple ci-dessus est très simple. j'espère que lorsque nous visitons une page .php, nous pourrons afficher correctement la déclaration de bienvenue. Cependant, malheureusement, lorsque nous utilisons le navigateur pour accéder à la page a.php, nous constatons que le résultat est le suivant :

Hello! Welcome to !
Copier après la connexion

Autrement dit, lorsque nous appelons la fonction sayHi() dans la fonction include_view_page(), b Le $site_name global dans la fonction sayHi() de la page .php n'est pas correctement reconnu et prend effet. Que se passe-t-il?

En fait, lorsque l'on inclut la page b.php dans la fonction include_view_page(), la variable $site_name de la page b.php équivaut à être stockée dans le scope au sein de la fonction include_view_page(). Comme nous le savons tous, la globalisation d'une variable au sein d'une fonction établit en fait une référence à la variable globale de la page au sein de la fonction. Dans notre exemple, la variable $site_name n'est qu'une variable locale dans la fonction include_view_page() pour a.php, donc la variable ne peut pas être globalisée. Naturellement, nous ne pouvons pas obtenir les variables et les valeurs de variable correctes lorsque nous effectuons des appels associés. .

En PHP, nous devons particulièrement prêter attention au problème mentionné ci-dessus de l'inclusion d'une page dans une fonction, qui entraîne la modification de la portée de la variable dans la page . Afin d'éviter cette situation, nous devrions essayer de réduire les appels d'inclusion à plusieurs niveaux et essayer de ne pas utiliser d'inclusion dans les fonctions. De plus, on peut également déclarer $site_name comme variable globale dans la page b.php. Le code est le suivant :

<?php 
global $site_name; 
$site_name = &#39;CodePlayer&#39;; 
function sayHi(){ 
    global $site_name; 
    echo "Hello! Welcome to $site_name !"; 
} 
?>
Copier après la connexion

Par exemple, pour référencer des variables globales au sein d'une fonction, regardez d'abord le. code suivant :

<?php  
$var1 = "#####";  
$var2 = "&&&&&"; 
function global_references($use_globals)  
{  
global $var1, $var2;  
if (!$use_globals) {  
$var2 =&$var1; //1 
} else {  
$GLOBALS["var2"] =&$var1; //2 
}  
} 
global_references(false);  
echo "var2 is set to &#39;$var2&#39;<br/>";  
global_references(true);  
echo "var2 is set to &#39;$var2&#39;<br/>";  
?>
Copier après la connexion

Le résultat de sortie est le suivant :

var2 is set to &#39;&&&&&&#39; 
var2 is set to &#39;#####&#39;
Copier après la connexion

est visible dans le code ci-dessus : $var2 =&$var1 //1 n'est visible qu'à l'intérieur. la fonction.

Et $GLOBALS["var2"] =&$var1 //2 est visible dans la portée globale.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal