Je suis curieux de savoir pourquoi le code suivant se comporte différemment?Pourquoi est-ce que je ne peux pas référencer une variable globale directement en PHP?
Ce qui suit ne fonctionne pas:
$_variable &= global $_global;
echo $_variable;
Les travaux suivants:
global $global;
$_variable &= $_global;
echo $_variable;
?
@Pekka: Bonne réponse, mais pourquoi devons-nous utiliser 'global' de toute façon? Je connais beaucoup de langues pour lesquelles vous n'avez pas besoin de spécifier dans une fonction qu'une variable (globale) de l'extérieur de cette fonction est nécessaire. –
@Marcel Comme PHP est dynamiquement typé, avec les variables créées à la volée, il n'y a pas de déclaration spécifique. Les langues fortement typées (ou même celles qui vous obligent à déclarer la variable) déclarent la variable dans une instance, dans une portée, et celle-ci est utilisée tant qu'elle est dans la portée, et n'a pas été surchargée avec une version plus récente du même nom. Comme il n'y a pas de déclaration formelle, PHP suppose que vous êtes toujours en train de déclarer la portée locale, ce qui vous permet de réutiliser les noms de variables. – Tarka
Je sais qu'en règle générale on est découragé d'utiliser des variables globales, mais parfois on est obligé de le faire (je programme Drupal et il est impossible de faire quelque chose d'intéressant sans appeler une variable globale ici et là - comme l'utilisateur $ global par exemple). – dkinzer