Modérateur PHPfrance |
10684 Messages
29 oct. 2007, 11:38
Il s'agit effectivement d'une question de portée des variables. Par défaut, une variable définie en dehors d'une fonction n'est pas visible à l'intérieure de celle-ci. L'exception est faite pour les variables globale (comme $_POST, $_SERVER, etc.) et les constantes que tu as définies avec la fonction define().
Le mieux est donc selon moi de définir tes informations de connexion dans des constantes pour pouvoir en disposer partout à tout moment sans te poser de question. Ceci étant, il t'est tout de même possible de définir comme globale une variable à l'intérieur d'une fonction :
$var1 = 1;
$var2 = 1;
function maFonction() {
global $var1; // on indique qu'il s'agit de la variable externe
$var1++; // incrémente la variable externe
$var2++; // incrémente un variable locale
}
maFonction(); // appel à la fonction
echo $var1; // affiche "2", la variable var1 a bien été lue et modifiée par la fonction
echo $var2; // affiche "1", la variable var2 incrémentée par la fonction n'est pas liée à celle-ci
Tu peux donc à l'intérieur d'une fonction déclarer comme globales les variables contenant tes informations de connexion et les utiliser pour te connecter sans avoir à les passer en paramètre

Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...