7
votes

Sont des variables extérieures aux variables globales?

<?php

$foo = 1;

function meh(){
  // <-- $foo can't be accessed
}
It doesn't look like a global variable. However, does it have disadvantages like global stuff if it's outside the function?

0 commentaires

6 Réponses :


5
votes
<?php

$foo = 1;

function meh(){
  global $foo;
  // <-- $foo now can be accessed
}

?>

0 commentaires

2
votes

En dehors de la fonction est sorta comme une portée globale (par rapport aux langages de type C), mais vous devez faire une chose pour permettre l'accès au VAR dans une fonction:

function meh(){
  global $foo;
  // $foo now exists in this scope
}


0 commentaires


2
votes

Dans votre exemple $ FOO est créé comme variable dans la portée globale. (Sauf si votre script indiqué était inclus () dans une autre fonction / méthodes de portée.)

php n'a pas de vraies variables globales. Vous devez l'alias manuellement en utilisant le FOO GLOBAL $; instruction pour y accéder. (Aussi la "chose de Global est mauvais" conseiller est juste que, de mauvais avis.)


0 commentaires

2
votes

Si je comprends bien votre question correctement, il ne devrait vraiment pas y avoir de problème. Sauf si vous déclarez une variable en tant que globale, elle aura été limitée à la portée dans laquelle il est déclaré, dans ce cas quel que soit le fichier PHP du code ci-dessus. Vous pouvez déclarer une autre variable $ foo à Meh () et ce serait indépendant de la FOO $ définie à l'extérieur.


0 commentaires

10
votes

Toutes les variables définies en dehors de toute fonction sont déclarées dans la portée mondiale. Si vous souhaitez accéder à une variable globale, vous avez deux choix:

  1. Utilisez le mot-clé global em> p>

    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
    } 
    ?>
    
  2. ou utilisez les $ global em> p>

    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        global $a, $b;
    
        $b = $a + $b;
    }
    ?> 
    


0 commentaires