Bonsoir,
mon objectif est de pouvoir affecter une valeur à une variable en un endroit d'un script et que cette variable soit accessible à un autre endroit de ce script, et au cours d'un autre appel de ce script.
Ayant déjà vu que la rendre global était mal, j'ai cherché une autre solution :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function setOrGetMessage($value){ static $message = ""; if ($value == "") return $message; else { $message = $value; } }
Donc pour affecter une valeur à la variable $message, on peut faire setOrGetMessage('my_value'); et pour en afficher la valeur echo(setOrGetMessage(''));. La portée static de la variable doit rendre pérenne sa valeur lors d'un autre appel du script (à l'instant t1, j'exécute le script et mets la variable à la valeur value1 puis je sors du script, puis le réexécute ; la variable a gardé sa valeur value1 que je peux afficher en faisant t2 echo(setOrGetMessage(''));).
Mon idée échoue, vu que quand j'affiche la valeur de la variable, elle est toujours nulle alors que je l'ai déjà mise à une valeur non nulle.
Comment je le vérifie ?
J'ai un peu modifié la fonction :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function setOrGetMessage($value){ static $message = "empty"; if ($value == "") return $message; else { $message = $value; } }
Lors d'un appel du script, je modifie la valeur de la variable : setOrGetMessage('Vous devez saisir le nom d\'une ville.');. Lors d'un second appel du script, j'affiche la valeur de la variable : echo(setOrGetMessage('')); mais celle-ci vaut encore empty. Sa valeur n'a donc pas été modifiée.
Quelle est l'erreur, SVP ?
Partager