Alarch
2008-10-01 19:26:55 UTC
Bonjour,
je vais essayer d'être le plus clair possible.
En testant un exemple du site de documentation php pour contourner
l'impossibilité d'utiliser les variables variables avec les superglobales
je m'apperçois que le bout de code proposé appliqué au tableau $GLOBALS :
function indir($name) {
$moe = eval("return \$$name;");
echo "<pre>";
print_r($moe);
echo "</pre>";
}
indir("GLOBALS");
m'affiche la valeur de toutes les propriétés d'une classe de connexion à
mysql (que je chargeais et utilisait dans mon script de test). Je vois
entre autre le mot de passe de connexion alors que dans la classe (PHP5) la
propriété qui le contient il est déclaré comme "private", que la classe et
le fichier contenant le mot de passe sont dans un répertoire d'include au
dessus d'htdocs et que cette propriété est instanciée par le constructeur
de la classe.
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS,
et ce n'est pas le cas.
Donc je n'ai pas bien compris les problèmes de portée de variables dans
PHP, si quelqu'un pouvait m'éclairer un peu sur ce sujet.
je vais essayer d'être le plus clair possible.
En testant un exemple du site de documentation php pour contourner
l'impossibilité d'utiliser les variables variables avec les superglobales
je m'apperçois que le bout de code proposé appliqué au tableau $GLOBALS :
function indir($name) {
$moe = eval("return \$$name;");
echo "<pre>";
print_r($moe);
echo "</pre>";
}
indir("GLOBALS");
m'affiche la valeur de toutes les propriétés d'une classe de connexion à
mysql (que je chargeais et utilisait dans mon script de test). Je vois
entre autre le mot de passe de connexion alors que dans la classe (PHP5) la
propriété qui le contient il est déclaré comme "private", que la classe et
le fichier contenant le mot de passe sont dans un répertoire d'include au
dessus d'htdocs et que cette propriété est instanciée par le constructeur
de la classe.
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS,
et ce n'est pas le cas.
Donc je n'ai pas bien compris les problèmes de portée de variables dans
PHP, si quelqu'un pouvait m'éclairer un peu sur ce sujet.