J'ai une fonction qui inclut un fichier basé sur la chaîne qui lui est transmise, c'est-à-dire la variable d'action de la chaîne de requête. J'utilise ceci pour des buts de filtrage etc. ainsi les gens ne peuvent pas inclure des dossiers qu'ils ne devraient pas pouvoir et si le dossier n'existe pas un dossier par défaut est chargé à la place. Le problème est que lorsque la fonction s'exécute et inclut la portée du fichier, elle est perdue car l'inclusion s'exécute dans une fonction. Cela devient un problème car j'utilise un fichier de configuration global, puis j'utilise des fichiers de configuration spécifiques pour chaque module sur le site. La façon dont je le fais en ce moment est de définir les variables que je veux pouvoir utiliser comme globales, puis de les ajouter au sommet de la fonction de filtrage.PHP Conserve la portée lors de l'appel d'une fonction
Existe-t-il un moyen plus simple de le faire, c'est-à-dire en préservant la portée lors d'un appel de fonction ou existe-t-il des macros PHP?
Modifier: Serait-il préférable d'utiliser extract ($ _ GLOBALS); à l'intérieur de mon appel de fonction à la place?
Éditer 2: Pour tous ceux qui s'en soucient. Je me suis rendu compte que j'étais complètement en train de penser au problème et qu'au lieu d'utiliser une fonction, je devrais utiliser un include, duh! De cette façon, je peux garder ma portée et avoir mon gâteau aussi.
Dans mon cas, le recours à votre « Edit 2 » et en utilisant simplement un include ne fonctionne pas parce que j'ai Il y a beaucoup plus de choses qui se passent. Essentiellement penser à une classe "View" qui nécessite un viewscript.php qui, parce que nous sommes dans une portée de plugin, je veux passer dans la portée "globale" au viewscript sans avoir besoin de déclarer chaque variable comme globale dans le " doInclude "fonction. –