Comment définir les fonctions en PHP
Comment définir une fonction globale, qui serait accessible à partir de n'importe quelle page?
Vous devez vous connecter pour publier un commentaire.
Comment définir une fonction globale, qui serait accessible à partir de n'importe quelle page?
Vous devez vous connecter pour publier un commentaire.
Dans include.php:
Alors, dans chaque page que vous souhaitez utiliser:
Vous pouvez déclarer une fonction à l'intérieur d'une fonction, être prudent de faire appel de l'extérieur de la fonction qu'une seule fois ou vous aurez une erreur.
declareGlobalsFn()
ne peut pas être appelé deux fois, ou que vous obtenez:PHP Fatal error: Cannot redeclare globalfn1()
calling parent::declareGlobalsFn()
et d'éviter une erreur de vérification de l'existence la première.if(!function_exists('globalfn1')){ function globalfn1(){ ... }}
Si vous voulez que votre fonction pour être toujours disponible, sans l'inclure, faites ceci:
Créer votre fonction dans un fichier php.
Dans votre php.ini de recherche pour l'option
auto_prepend_file
et ajouter votre fichier php à la ligne, comme ceci:auto_prepend_file = "/path/to/my_superglobal_function.php"
Ou si vous l'écrivez avec un pas de chemin d'accès absolu, comme ceci:
auto_prepend_file = "my_superglobal_function.php"
Il va regarder dans votre
include_path
dansphp.ini
pour trouver le fichier.Le mettre dans un inclure, puis de l'inclure.
-
Ce techniquement peut ne pas être correcte, en fonction du contexte.
'Page' pourrait être perçue comme "fichier", par exemple, "Vous devez indiquer la fonction du fichier à l'intérieur de chaque fichier que vous souhaitez utiliser la fonction".
Une fois qu'une fonction est définie dans votre programme, il peut être consulté à partir de n'importe où, aller de l'avant jusqu'à ce que le programme a fini de s'exécuter.
Dire que vous avez ceci:
index.php:
boot.php
page.php
Avec cela, votre sortie sera
1119342949
.Bien sûr, quand vous dites "page", vous pouvez littéralement signifie un accès autonomele fichier de page de", et dans ce cas les réponses des autres utilisateurs suffira. Toutefois, si vous êtes à la recherche d'utiliser la même fonction à partir d'endroits différents tout au long de votre programme, il suffit de le définir avant de vous envisagez de l'utiliser et vous pouvez y accéder de n'importe où, aller de l'avant indépendamment de leur portée.
Edit:
Pour corriger moi-même, bien sûr, cela n'est pas vrai pour des choses comme des fonctions de classe, mais pour les fonctions normales cela reste vrai.
De s'étendre sur les luarwo réponse, vous pouvez déclarer la fonction à droite de votre constructeur de la classe. Cela pourrait rendre votre classe une sorte de fonction de bibliothèque, où les fonctions sont accessibles à partir de n'importe quelle page où vous créez votre instance de classe.
Sandbox\MyGameLib
Balançoire
Sandbox
espace de noms.