Effectuer une requête dans une fonction (global)

Lorsqu'une fonction utilise une variable, la portée de cette variable est limitée à cette fonction.

Ex :

PHP

function test() {

   // la variable $usager ne pourra pas être utilisée à l'extérieur de la fonction

   $usager = 'annie';

   ...

}

Inversement, une fonction ne pourra pas utiliser des variables qui ont été déclarées en dehors de ses limites.

La technique par excellence pour permettre à une fonction d'utiliser une variable ayant été déclarée en dehors de ses limites consiste à recevoir cette variable en paramètre.

Il existe pourtant des cas où nous aurions besoin d'étendre la portée de la variable sans toutefois pouvoir utiliser des paramètres. C'est à ce moment que l'instruction global entre scène.

▼Publicité

Permettre à une variable d'être utilisée en dehors de la fonction où elle a été déclarée

Il est possible de rendre la variable disponible en dehors de la fonction à l'aide de l'instruction global.

PHP

function test() {

   // la variable $usager continuera d'exister en dehors de la fonction

   global $usager;

   $usager = 'annie';

   ...

}

...

test();   // exécute la fonction donc initialise la variable $usager

echo $usager;  // affiche annie

Permettre à une fonction d'utiliser une variable déclarée en dehors de la fonction

Inversement, une fonction peut utiliser une variable déclarée en dehors de la fonction, toujours à l'aide de l'instruction global.

PHP

function test() {

   // la variable $debug a été déclarée en dehors de la fonction

   global $debug;

   

   if ($debug) {

      ...

   }

}

Avoir accès à la variable $mysqli

Si vous initialisez votre variable $mysqli dans une fonction vous devrez prendre soin de la rendre globale afin qu'elle puisse être utilisée ailleurs dans votre programme.

Il est possible de rendre la variable disponible en dehors de la fonction à l'aide de l'instruction global.

PHP

function accesbd() {

   // la variable $mysqli continuera d'exister en dehors de la fonction

   global $mysqli;

   @$mysqli = new mysqli(...);

   ...

}

Inversement, si vous codez une fonction qui doit exécuter une requête en utilisant la varialbe $mysqli existante, vous devrez ajouter l'instruction suivante pour que $mysqli soit accessible.

PHP

function afficherMenu() {

   // la variable $mysqli a été déclarée en dehors de la fonction

   global $mysqli;

   $requete = "...";

   $resultat = $mysqli->query($requete);

   ...

}

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories