note 63848 deleted from language.variables.scope by bjori
| From: | bjori@php.net | Date: | Sun, 02 Apr 2006 02:17:08 +0000 |
| Subject: | note 63848 deleted from language.variables.scope by bjori | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-107144@lists.php.net to get a copy of this message | ||
Note Submitter: mtiservices at hotmail dot fr
Reason: non-english
----
Pour tous les français, je voulais juste dire que les variables de session auquelles on accède
via $_SESSION['nom de la variable'] doivent être déclarées globales pour pouvoir
être utilisées dans une fonction ET en dehors de la fonction.
ainsi, en prenant ce code:
$_SESSION['message']="hello";
printmessage();
function printmessage() {
print $_SESSION['message'];
}
Rien ne sera imprimé. Il faut utiliser le mot clé global comme ceci:
$_SESSION['message']="hello";
printmessage();
function printmessage() {
#################
global $_SESSION;
#################
print $_SESSION['message'];
}
notez qu'il ne faut pas préciser quelle variable du tableau $_SESSION doit être rendue
globale car celà provoquerait une erreur. Il FAUT écrire global $_SESSION; et pas autre chose.
Celà est évident pour les habitués mais je suis sûr que plusieurs personnes pensent que
tout tableau déclaré par php et commençant par $_ suivi d'un nom en majuscules est
superglobal.