Bonjour,
J'ai un fichier test2.php qui contient ceci :
Dans le fichier global.php, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php include($_SERVER['DOCUMENT_ROOT'].'/scripts/global.php'); echo($USER->id()); $USER = new user(2); echo($USER->id()); ?>
Actuellement, la classe user est très simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 require_once('class_user.php'); if (!isset($USER)) $USER=new user(0); // le problème semble être ici : on dirait qu'il le fait à chaque fois que la page est chargée !!
Quand je charge la première fois la page test2.php dans mon navigateur, il affiche très normalement "02" : le premier 0 correspond à l'id de l'instance $USER initialisée pour la première fois dans global.php. Puis le 2 correspond à l'affichage de l'id de l'instance $USER initialisée par "$USER = new user(2);". OK.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class user{ private $_id = 0; public function __construct($userid=0){ $this->_id = $userid; } public function id(){ return $this->_id; } }
Puis je recharge la page et là, je m'aperçois qu'il écrit ENCORE 02... alors que l'objet $USER, initialisé pour la première fois dans global.php, n'aurait pas dû être réinitialisé une seconde fois à cause de la condition isset...
Comment faire pour déclarer la variable $USER dans globals.php (sans toutefois l'écraser si elle a déjà été instanciée), puis qu'elle soit instanciée et écrasée par $USER = new user(2); dans le test2.php ?
Merci pour votre attention et pour votre aide...
T.
Partager