Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2963 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Modification d'une variable globale dans une fonction...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modification d'une variable globale dans une fonction...

n°670995
neo9205
Posté le 11-03-2004 à 19:12:11  profilanswer
 

:hello:  
 
Si je déclare un fichier PHP comme ci-dessous:

Code :
  1. <?
  2. $variable=3;
  3. function ma_fonction()
  4. {
  5. $variable++;
  6. }
  7. ma_fonction();
  8. echo "$variable"; %variable =3 ou 4 ??
  9. ?>


Est ce que à la sortie de la fonction, la variable sera encore égale à 4 ? Dans ce cas, est ce pour cela qu'il n'existe pas de return en PHP (puisque l'on peut modifier les variables en les mettant en global) ???


Message édité par neo9205 le 11-03-2004 à 19:12:50
mood
Publicité
Posté le 11-03-2004 à 19:12:11  profilanswer
 

n°671007
naceroth
Posté le 11-03-2004 à 19:26:13  profilanswer
 

1. Avant de poser la question, t'as pensé à faire le test tout seul, comme un grand ? :D
2. Il y a un return en php...
3. $variable vaudra 3, si tu arrives jusque là sans une erreur dans la fonction (puisque tu ne la passes pas en global justement)


Message édité par naceroth le 11-03-2004 à 19:27:22
n°671020
neo9205
Posté le 11-03-2004 à 19:35:33  profilanswer
 

Si je fais ça :

Code :
  1. <?
  2. $variable=3;
  3. function ma_fonction()
  4. {
  5. global $variable;
  6. $variable++;
  7. }
  8. ma_fonction();
  9. echo "$variable"; %variable =3 ou 4 ??
  10. ?>


ca fonctionne ça donne bien la valeur 4
 
Et pour le return, ça marche comment et est ce utile ??


Message édité par neo9205 le 11-03-2004 à 19:39:27
n°671034
Profil sup​primé
Posté le 11-03-2004 à 19:56:13  answer
 

tu peux aussi faire ainsi :

Code :
  1. function ma_fonction(&$var)
  2. {
  3. $var++;
  4. }
  5. ma_fonction($mavariable)


c'est plus explicite et au moins tu sais que ta fonction va entre autre modifier la variable donné en parametre

n°671042
neo9205
Posté le 11-03-2004 à 20:05:00  profilanswer
 

spike a écrit :

tu peux aussi faire ainsi :

Code :
  1. function ma_fonction(&$var)
  2. {
  3. $var++;
  4. }
  5. ma_fonction($mavariable)


c'est plus explicite et au moins tu sais que ta fonction va entre autre modifier la variable donné en parametre


 
Ok c'est une idée aussi mais si ma variable à modifier est dans un autre fichier,que je fait bien sur un include du fichier en question, que je modifie la variable dans la fonction, et que je recharge la page avec un submit().Une fois de retour sur la page, si je ne réexécute pas la fonction, la valeur de la variable sera repris du fichier initial ou aura gardé sa valeur précédente ?
 
Ne peut on pas modifier directement la valeur de la variable dans le fichier ?


Message édité par neo9205 le 11-03-2004 à 20:07:15
n°671169
Tentacle
Posté le 11-03-2004 à 22:10:09  profilanswer
 

ha non pour ca utilises les sessions, ou BDD, ou ecrit dans un fichier (bof) mais la valeur de $variable ne sera pas garder sinon.

n°671181
neo9205
Posté le 11-03-2004 à 22:21:54  profilanswer
 

Tentacle a écrit :

ha non pour ca utilises les sessions, ou BDD, ou ecrit dans un fichier (bof) mais la valeur de $variable ne sera pas garder sinon.


 
Elle ne sera pas gardé meme si je passe ma variable dans le formulaire dans un champs "hidden" avant d'envoyer le formulaire ?
 
 
Qu'entend tu par BDD ? base de données ?

n°671184
Tentacle
Posté le 11-03-2004 à 22:23:26  profilanswer
 

si par formulaire pas de problème ... désolé j'avais pas compris que tu voulais faire ça.  
Oui j'entends base de données mais c'est une solution extrême pour ce que tu veux faire je pense :)

n°671199
neo9205
Posté le 11-03-2004 à 22:29:04  profilanswer
 

Tentacle a écrit :

si par formulaire pas de problème ... désolé j'avais pas compris que tu voulais faire ça.  
Oui j'entends base de données mais c'est une solution extrême pour ce que tu veux faire je pense :)


 
oui mais non,lol.Elle ne gardera pas sa valeur ma variable...
 
C'est un formulaire qui se "submit" sur lui meme.Et comme j'ai un include (qui contient justement la fameuse variable initialisée)au début du fichier, il va etre relu à chaque rechargement...Du coup, je suis bloqué pour continuer !
 
Tu est d'accord avec le fait que ma variable va reprendre sa valeur initiale à chaque rechargement et non conserver une autre valeur que je lui aurait donné pendant un traitement ?  

n°671212
Tentacle
Posté le 11-03-2004 à 22:33:15  profilanswer
 

oui je suis d'accord mais tu pourrais pas la réinitialiser avec la valeur fourni via le formulaire ?

mood
Publicité
Posté le 11-03-2004 à 22:33:15  profilanswer
 

n°671217
neo9205
Posté le 11-03-2004 à 22:34:30  profilanswer
 

Tentacle a écrit :

oui je suis d'accord mais tu pourrais pas la réinitialiser avec la valeur fourni via le formulaire ?


 
C'est en effet une excellente idée, je vais tester ça...

n°671397
naceroth
Posté le 12-03-2004 à 00:47:34  profilanswer
 

neo9205 a écrit :


Et pour le return, ça marche comment et est ce utile ??


 

Code :
  1. function test(){
  2.    return true;
  3. }
  4. if(test()){...}


 
Exemple trivial. C'est bien sûr utile dès lors que ta fonction doit renvoyer un résultat (ce qui est le cas de pratiquement toutes les instructions de php, je retourne le résultat si il n'y a pas de problème et false sinon => gestion d'erreur possible)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Modification d'une variable globale dans une fonction...

 

Sujets relatifs
Appel fonction Java dans un XSPModification Bouton
Affiche une image variable[vba] type de variable
Problème d'allocation d'un tableau dans une fonctionrecuperer en javascript pour affecter à une variable php possible ??
Fonction $_FILES avec limitation d'uploadAccoler une variable (int) à un String pour former une autre variable
Utilisation de la fonction QueryPerformanceFrequency probleme ....fonction d'analyse d'un champs de base de donnée
Plus de sujets relatifs à : Modification d'une variable globale dans une fonction...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR