Comment définir une fonction globale qui serait accessible depuis n'importe quelle page?
Dans include.php:
function myGlobalFunction() {
// do someting
}
Ensuite, dans chaque page que vous souhaitez utiliser:
include 'include.php';
myGlobalFunction();
Vous pouvez déclarer une fonction à l'intérieur d'une fonction, faire attention à ne pas appeler la fonction externe qu'une seule fois ou vous obtiendrez une erreur.
class MyClass {
function declareGlobalsFn () {
// functions declared inside a function have global scope
function globalfn1() {echo "fn1";}
function globalfn2() {echo "fn2";}
}
}
$ob = new MyClass();
$ob->declareGlobalsFn();
globalfn1(); // fn1
globalfn2(); // fn2
Si vous souhaitez que votre fonction soit toujours disponible, sans l'inclure, procédez comme suit:
Créez votre fonction dans un fichier php.
Dans votre php.ini, recherchez l'option auto_prepend_file
et ajoutez votre fichier php à cette ligne, comme ceci:
auto_prepend_file = "/path/to/my_superglobal_function.php"
Ou si vous écrivez avec un chemin non absolu, comme ceci:
auto_prepend_file = "my_superglobal_function.php"
Il cherchera dans votre include_path
dans php.ini
pour trouver le fichier.
Mettez-le dans une inclusion, puis incluez-le.
Pour développer la réponse de luarwo , vous pouvez déclarer la fonction directement dans le constructeur de votre classe. Cela pourrait faire de votre classe une sorte de bibliothèque de fonctions, où les fonctions sont accessibles à partir de n'importe quelle page où vous créez votre instance de classe.
Sandbox\MyGameLib
<?php
namespace Sandbox;
class MyGameLib {
public function __construct() {
if (!function_exists('loveGame')) {
function loveGame($game) {
print "The game $game is awesome";
}
}
}
}
Seesaw
<?php
namespace Seesaw;
use Sandbox\MyGameLib;
$m = new MyGameLib();
loveGame('Tempest');
Le jeu Tempest est génial