Quoi d'nuuf ?
Je prépare un article assez complet sur les classes CSS de Joomla 1.0.x avec comme mot d'ordre "Un petit dessin vaux mieux qu'un long discourt" !
 
Articles les plus lus
Derniers articles
Download
SW Menu Free
OpenSEF 2.0.0 RC5
Jogadget 0.4
gko_neurologeek v0.6

3.2. Les variables dans les fonctions

Version imprimable Suggérer par mail
28-03-2007
php Les foncitons sont la "machine a tout faire" de php, elle vont pouvoir traiter des variables et en retour elles pourront partager de l'information avec le reste du programme php. Pour cela il faut évidemment que les fonctions sachent récupérer et traiter les variables. Voyons donc comment gérer les variables au sein d'une fonction.
Par défaut, une variable déclarée dans une fonction n'est visible qu'au sein de cette fonction. La fonction est donc une sorte de "conteneur étanche" qui empéche au reste du programme de voir ce qui se trouve à l'interieur.

Exemple :

<?php
$nom="toto";
function mafonction()
{     $nom="tata";
    echo "$nom";
}
echo "$nom<br>";
?>


Affichera :

toto


Le cloisonement est tel que l'on peut même aller jusqu'a utiliser le même nom de variable ayant des valeurs différentes (déconseillé !) :

<?php
$nom="toto";
function mafonction()
{     $nom="tata";
    echo "$nom";
}
echo "$nom<br>";
mafonction();
?>


Affichera :

toto
tata


Maintenant que se passe t-il si l'on souhaite récupérer des variables qui sont en dehors de la fonction :

<?php
$nom="toto";
function mafonction()
{   
    echo "$nom";
}
mafonction();
?>


N'affichera rien du tout puisque la variable $nom n'est déclarée qu'à l'exterieur de la fonction !

Pour èchanger des variables avec le reste du programme il est nécessaire de déclarer les variables concernées comme "communes" grace à l'instruction "global". Il est très important de déclarer les variables globales AVANT d'utiliser les variables dans la fonction sans quoi la déclaration n'aura aucun effet.

Exemple :

<?php
$nom="toto";
function mafonction()
{   global $nom;
    echo "$nom";
}
mafonction();
?>


Affichera :

toto


L'instruction gobal ne fonctionne que de l'extérieur de la fonction vers l'intérieur mais pas l'inverse, une variable uniquement déclaré dans la fonction ne sera pas visible du reste du programme :

<?php
function mafonction()
{   global $nom ;
    $nom="toto";
}
echo "$nom";
?>


N'affichera rien du tout !













 
Suivant >