Ne php7 encore le support des variables globales?

Il est possible d'utiliser une variable globale au sein de la fonction dans php7? Il a fonctionné correctement en php5.4.

J'ai constaté que le mot-clé mondiale n'est pas utile plus dans php7:

mondiale accepte uniquement des variables de type simple migration70.incompatible

Mais Il y a sur la page à propos GLOBALS réservés.les variables.globals
il est encore écrit que (PHP 4, PHP 5, PHP 7) devrait soutenir GLOBALS.

Malheureusement, rien ne fonctionne pour moi:

function printGlobal(){
  global ${$a};
  global $b;
  echo '<br/>-'.${$a};
  echo '<br/>-'.$b;
  echo '<br/>-'.$GLOBALS['c'];
}

$a = "hello";
$b = 7;
$c = 6;

printGlobal();

de sortie:

-
-
-

S'il vous plaît ne pas commencer une discussion sur la façon d'éviter de l'utilisation de variables globales 🙂

--- EDIT:

J'ai raté, que X.php fichier, j'ai travaillé avec est inclus withinin index.php fichier dans une fonction includeAnotherPage(..). Ainsi, une variable définie dans X.php le fichier ne peut pas être une variable globale - parce que tout X.php le fichier est déjà en fonction. Par conséquent, les codes, écrit ci-dessus, ne fonctionne pas.

Ok merci pour les réponses. Je suis stupide, et l'article m'enferma dans le sentiment que globals peut être désactivé.

  • Quelle version de php que vous utilisez? Le premier, bien sûr, ne fonctionne pas, mais les autres devraient fonctionner: 3v4l.org/Zj5LF#v510
  • Votre sortie est incorrect. il est - -7 -6
  • Fonctionne, mais $a est pas défini dans la fonction tant que vous ne mettez pas global $a; avant de l'utiliser.
  • Comme @CharlotteDunois mentionné, vous devez définir toutes les variables globales avant de définir la fonction d'où vous appelez de vos variables, et donc $a, $b, $c aller au-dessus de printGlobal()
  • Pas de. Le code exact imprimé ci-dessus donne la sortie - -7 -6 pas besoin de changer quoi que ce soit. PHP ver. 7.0.10
  • Ne devriez-vous pas déclarer la variable comme une variable globale avant d'assigner une valeur ou l'utilisation d'une fonction? Donc, en haut de la page il suffit de faire "global $a;" avant u ne "$a=6;"
  • Ce qui ne fonctionne plus est à l'échelle mondiale avec les variables. Mais presque tout de l'utilisation de variables signe d'une mauvaise conception de commencer, vous devez utiliser un tableau associatif à la place.

InformationsquelleAutor Mira Nedved | 2016-12-18