PHP débutant : problème script pour galerie
Fermé
Gizmil
Messages postés
706
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
3 octobre 2022
-
17 nov. 2011 à 20:43
le père - 21 nov. 2011 à 00:14
le père - 21 nov. 2011 à 00:14
3 réponses
Bonjour
Par défaut, les variables sont locales dans les fonctions en PHP. C'est à dire qu'une variable à l'intérieur d'une fonction n'a aucun rapport avec une variable de même nom à l'extérieur de cette fonction.
Si tu veux qu'il s'agisse de la même variable, il suffit de la déclarer globale à l'intérieur des fonctions où tu l'utilises :
Par défaut, les variables sont locales dans les fonctions en PHP. C'est à dire qu'une variable à l'intérieur d'une fonction n'a aucun rapport avec une variable de même nom à l'extérieur de cette fonction.
Si tu veux qu'il s'agisse de la même variable, il suffit de la déclarer globale à l'intérieur des fonctions où tu l'utilises :
function defineStateNavigation(){ global $numImageIndex,$autrevariable1,$autrevariable2;
Gizmil
Messages postés
706
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
3 octobre 2022
65
18 nov. 2011 à 18:49
18 nov. 2011 à 18:49
Salut, Le père ! Merci pour ton aide !
Alors, j'ignorais, concernant la portée des variables, qu'elles se limitaient aux fonctions. Jusqu'à présent, je n'ai travaillé que sur de l'ActionScript. Bien sûr, on y trouve aussi différents niveaux de portée mais, en AS, il me semble que la portée des variables définies au sein d'une fonction est accessible à l'extérieur de celle-ci. Du moins, il me semble l'avoir constaté ! Voilà pourquoi j'ai imaginé qu'il en était de même avec PHP.
Donc, là, effectivement, je comprend pourquoi ça ne peut pas marcher !
Cela dit, j'ai encore une petite question !
J'ai lu dans un guide PHP que déclarer une variable globale se faisait comme ceci :
$GLOBALS['maVar'] = 'le contenu de maVar';
Or, tu m'indiques de faire ceci :
global $maVar = 'le contenu de maVar';
Y a t-il une différence dans la manière de déclarer une variable gobale en fonction de l'endroit où on se trouve ?
Alors, j'ignorais, concernant la portée des variables, qu'elles se limitaient aux fonctions. Jusqu'à présent, je n'ai travaillé que sur de l'ActionScript. Bien sûr, on y trouve aussi différents niveaux de portée mais, en AS, il me semble que la portée des variables définies au sein d'une fonction est accessible à l'extérieur de celle-ci. Du moins, il me semble l'avoir constaté ! Voilà pourquoi j'ai imaginé qu'il en était de même avec PHP.
Donc, là, effectivement, je comprend pourquoi ça ne peut pas marcher !
Cela dit, j'ai encore une petite question !
J'ai lu dans un guide PHP que déclarer une variable globale se faisait comme ceci :
$GLOBALS['maVar'] = 'le contenu de maVar';
Or, tu m'indiques de faire ceci :
global $maVar = 'le contenu de maVar';
Y a t-il une différence dans la manière de déclarer une variable gobale en fonction de l'endroit où on se trouve ?
Bonjour
$GLOBALS['maVar'] = 'le contenu de maVar'; ?
Ceci ne crée pas à proprement parler une variable globale, mais utilise le tableau superglobal $GLOBALS pour pour rendre une valeur globale. Le résultat est le même, mais l'utilisation du mot clef global me semble plus simple, car il permet de manipuler un nom de variable 'normal'.
Y a t-il une différence dans la manière de déclarer une variable gobale en fonction de l'endroit où on se trouve ?
Pas que je sache. Une variable en dehors de toute fonction est globale, une variable dans une fonction est globale si elle est déclarée 'global' dans la fonction. Exception à remarquer : certains tableaux prédéfinis du PHP sont dits superglobaux car ils sont toujours globaux sans qu'on ait besoin de le préciser : $_GET, $_POST, ...
Va voir :
http://www.php.net/manual/fr/language.variables.superglobals.php
et
http://www.php.net/manual/fr/language.variables.scope.php
$GLOBALS['maVar'] = 'le contenu de maVar'; ?
Ceci ne crée pas à proprement parler une variable globale, mais utilise le tableau superglobal $GLOBALS pour pour rendre une valeur globale. Le résultat est le même, mais l'utilisation du mot clef global me semble plus simple, car il permet de manipuler un nom de variable 'normal'.
Y a t-il une différence dans la manière de déclarer une variable gobale en fonction de l'endroit où on se trouve ?
Pas que je sache. Une variable en dehors de toute fonction est globale, une variable dans une fonction est globale si elle est déclarée 'global' dans la fonction. Exception à remarquer : certains tableaux prédéfinis du PHP sont dits superglobaux car ils sont toujours globaux sans qu'on ait besoin de le préciser : $_GET, $_POST, ...
Va voir :
http://www.php.net/manual/fr/language.variables.superglobals.php
et
http://www.php.net/manual/fr/language.variables.scope.php