coucou
Lors d'une discussion, on m'a dit qu'un membre statique de classe était unique pour l'ensemble des connectés simultanément. Je soutenais le contraire mais vu l'insistance de mes collègues, bien plus pointus que moi (en java du moins) j'ai testé pour voir :
Lors d'une discussion, on m'a dit qu'un membre statique de classe était unique pour l'ensemble des connectés simultanément. Je soutenais le contraire mais vu l'insistance de mes collègues, bien plus pointus que moi (en java du moins) j'ai testé pour voir :
Code PHP :
<?php
class testStatique
{
static $a;
public $b = 0;
function __construct()
{
echo 'construction statique = '.$this->a.' variable = '.$this->b.'<br>';
$this->_st +=100;
$this->_var +=100;
echo 'construction terminée statique = '.$this->a.' variable = '.$this->b.'<br>';
sleep(10);
}
function up()
{
$this->a +=100;
$this->b +=100;
echo 'méthode augmentation statique = '.$this->a.' variable = '.$this->b.'<br>';
}
}
$toto = new testStatique;
$toto->up();
je lance ce code sur deux navigateurs (un firefox et un internet explorer)
avec les 10 secondes d'attente je suis persuadé avoir le temps de lancer le deuxieme script avant la fin du premier...
et patatra les deux me donnent le même résultat :
Citation :construction statique = variable = 0
construction terminée statique = 100 variable = 100
méthode augmentation statique = 200 variable = 200
j'en conclue donc que j avais raison, un membre statique n'est statique que dans le thread où il est créé.
Mais peut être me trompe je ?
a votre avis ?