PHP accéder à des variables globales en fonction

Selon la plupart des langages de programmation champ d'application des règles, je peux accéder aux variables définies à l'extérieur de fonctions à l'intérieur d'eux, mais pourquoi ce code ne fonctionne pas?

<?php
$data = 'My data';

function menugen(){   
    echo "[".$data."]";
}

menugen();
?>

Il est [] en sortie.

  • Ne pas le traiter comme global, le passer à la fonction comme argument
  • D'où vient le manuel de dire de telles choses?
  • Liées à la lecture: PHP mondial dans les fonctions
  • Qui downvoted cela? C'est un bien formé question ...
  • Vérifiez le deuxième exemple de cette page : php.net/manual/en/language.variables.scope.php
  • Les Questions ne doivent pas seulement être bien formés, ils doivent également se conformer à la DTD. Bazinga, XML blague.
  • lol +1 pour le Bazinga:)
  • autant que je sache, nous pouvons accéder à l'aide de $GLOBALS['varname'] où l'indice "varname" est $varname, en dehors de la fonction.En effet, nous pouvons utiliser print_r($GLOBALS) pour afficher toutes les variables globales.
  • Pas toujours la meilleure approche. Envisager un script simple avec un peu lâche des fonctions et des variables partagées à l'extérieur. Changer la façon dont vos fonctions de travail ou de tout mettre dans les classes et à l'aide de $this->foo peut-être exagéré.