Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment utiliser require_once à l'intérieur de la fonction

En fait, d'un point de vue technique, vous pouvez utiliser require_once() à l'intérieur d'une fonction. Cependant, il s'agit très probablement d'une mauvaise idée et non de ce que vous voulez vraiment faire :

  • inclure du code dans une fonction inclut littéralement le code à cet endroit. Cela signifie que tout le code inclus est évalué dans le cadre de la fonction. PHP déclare toutes les fonctions globales, mais les variables et les séquences de code brut sont liées localement, donc non visibles en dehors de la fonction exécutée en ce moment.

  • puisque vous utilisez un chemin relatif pour charger le fichier inclus, vous êtes limité à exécuter votre fonction à partir d'un certain niveau de système de fichiers. Cela limite l'utilisation de votre code...

Bien que cela puisse en fait être ce que vous voulez lorsque le fichier inclus contient une configuration locale, vous tomberez presque certainement dessus :

  • require_once() ne nécessite qu'une seule fois, c'est à cela que sert la fonction. Cela signifie :si vous saisissez votre fonction getTierOne() plus d'une fois puis pour chaque exécution suivante, le require_once() tout simplement ne le fera pas inclure n'importe quel code, puisqu'il l'a déjà fait lors de la première exécution. Donc, que votre configuration soit incluse ou non, cela dépend ! C'est une conception horrible !

Donc, soit incluez votre configuration globalement et par exemple stockez-la dans une variable à laquelle vous pouvez ensuite vous référer à l'intérieur de votre fonction ou vous utilisez require() ou include() pour s'assurer que la configuration est vraiment incluse dans chaque exécution de la fonction.