i fava une fonction qui ressemble à ceci comme ceci: et une config.php qui ressemble à ceci: p> Pourquoi est-ce que je reçois
4 Réponses :
Essayez d'ajouter
global $car_park;
super. Qui corrige le problème: D
Vous pouvez alternativement exiger () code> le fichier de l'intérieur de la fonction elle-même. Cela aurait également dit dans la bonne portée. Je ne peux pas dire que je recommanderais de le faire, mais le point est le suivant: lorsque vous incluez un fichier, il est exécuté dans la portée de l'instruction Inclure.
même si Paul décrit ce qui se passe, je vais essayer d'expliquer à nouveau.
Lorsque vous créez une variable, elle appartient à une portée particulière. Une portée est une zone où une variable peut être utilisée. P>
Par exemple, si je devais faire ce p> la variable n'est pas autorisée dans la fonction parce qu'il n'a pas été créé à l'intérieur de la fonction. Pour qu'il fonctionne à l'intérieur d'une fonction, vous devez utiliser le mot clé global de sorte que l'exemple ci-dessous fonctionne p> ceci est inversement pour ne pas pouvoir faire ce qui suit p> $GLOBALS['config'] = array(
'Some Car' => 22
);
function do_something()
{
echo $GLOBALS['config']['some Car']; //works
}
Vous pouvez essayer de le proxy dans votre fonction, comme: p>
Fonction FOO ($ bar) { p>
(code) p>
$ voiture = $ bar [3]; p>
(code) p>
} p>
Puis quand vous l'appelez: p>
echo foo ($ bar); p>
J'ai eu le même problème et j'ai déchiré mes cheveux dessus - rien n'a fonctionné, absolument rien - jusqu'à désespoir, je viens de copier le contenu de config.php code> dans un nouveau fichier et enregistré Comme
config2.php code> (sans modifier quoi que ce soit dans son contenu du tout), modifié le
requis_once ('config.php'); code> à
require_once ('config2.php '); code> et il a juste commencé à travailler. P>