La variable globale PHP est indéfinie dans une fonction même si un mot clé global est utilisé
Oui je sais variables globales est une mauvaise pratique, mais l'assouplissement de la règle pour celui-ci 😛
Mon code:
include('something.php'); //where $from is declared
function myfunc() {
global $from;
echo "from(myfunc)=$from<br />";
...
}
echo "from=$from<br />";
myfunc();
Le résultat est:
from=2010-05-01
from(myfunc)=
Ce qu'il se passe? 🙁
EDIT:
Si cela peut aider, tout le code ci-dessus est à l'intérieur d'un fichier de vue dans CodeIgniter ( et oui, je sais que les fonctions ne sont pas censés être à l'intérieur de points de vue 😛 )
source d'informationauteur Obay
Vous devez vous connecter pour publier un commentaire.
Je parie une bière que vous n'êtes pas à l'intérieur de la portée mondiale dans le cadre de cet extrait. Êtes-vous appeler cela de l'intérieur d'une fonction?
Dans ce cas, le
$from
vous définissez danssomething.php
n'est pas global, tandis que celui de la référence à la fonction.Il fonctionnera probablement si vous ajoutez un
global $from;
à l'intérieur desomething.php
avant de définir$from
.Inutile de dire, c'est pas une belle pratique de toute façon, et vous devez suivre les conseils de Gordon.
Faire vous-même une faveur et à l'utilisation L'Injection De Dépendance.
Cela permettra de rendre votre code plus maintenable, moins couplée et plus facilement unité vérifiables, parce qu'il est isolé à partir de la portée globale. De Plus, lorsque vous le faites gens que vous êtes cool.