Variable statique ou variable de session ?

Variable statique ou variable de session ? - PHP - Programmation

Marsh Posté le 25-03-2009 à 12:25:04    

Bonjour à tous
 
Voilà, je suis en train de réaliser une page PHP faisant appel à de l'Ajax afin de vérifier régulièrement le contenu d'un gros tableau stocké dans PHP, et en modifier des cases si besoin est.
Pour stocker ce tableau, j'hésite entre deux solutions :
- Faire une bête variable de session
- Passer par une variable statique qui serait accédée par une fonction dans ce genre :
 

Code :
  1. define('SET_TABLEAU' , 1 );
  2. define('SET_CASE' , 2 );
  3. define('GET_CASE' , 3 );
  4.  
  5. function gestTableau($getter, $colonne = null, $ligne = null, $valeur = null) {
  6.     static $tableau = array() ;
  7.    switch($getter) {
  8.        case SET_TABLEAU :
  9.            //on remplit le tableau entier
  10.        break ;
  11.        
  12.        case SET_CASE :
  13.            //remplissage d'une case
  14.            $tableau[$colonne][$ligne] = $valeur ;
  15.        break ;
  16.        
  17.        case GET_CASE :
  18.            //retourne la valeur d'une case
  19.            return $tableau[$colonne][$ligne] ;
  20.        break ;
  21.        
  22.            //etc etc etc
  23.        default :
  24.            throw new exception ('Constante inconnue') ;                   
  25.        
  26.    }
  27. }

Et ensuite :

Code :
  1. gestTableau(SET_CASE, 10, 23, 'ma valeur')


 
Je me demande surtout qu'elle serait la différence entre l'un et l'autre au niveau du fonctionnement ( si tenté qu'il y en ait une ), et est-ce qu'il y a une vraie différence au niveau des performances entre les deux...
 
Merci d'avance :)


Message édité par DaSayan le 25-03-2009 à 13:07:23

---------------
Tous les programmeurs sont des auteurs et tous les ordinateurs sont de mauvais acteurs.
Reply

Marsh Posté le 25-03-2009 à 12:25:04   

Reply

Marsh Posté le 25-03-2009 à 12:58:09    

euh...
Bon ton problème est un problème de permanence des données entre deux, pages, pas dans une fonction, donc static n'a pas d'utilité si j'ai bien compris ton problème.
Il faut que tu utilises les sessions.

Reply

Marsh Posté le 25-03-2009 à 13:17:32    

Bah en fait je me sers déjà de la seconde technique avec la variable statique quand j'ai besoin de stocker des valeurs qui sont appelées dans tout un site au cours de son exécution.
 
Là il s'agit effectivement d'un problème de permanence dans une page appelée via Ajax, et je me demandais si une variable statique pouvait fonctionner, si c'était plus intéressant qu'une session...


Message édité par DaSayan le 25-03-2009 à 13:18:00

---------------
Tous les programmeurs sont des auteurs et tous les ordinateurs sont de mauvais acteurs.
Reply

Marsh Posté le 25-03-2009 à 13:41:07    

non, là il y a quelque chose que tu n'as pas saisi donc il est important que tu y réfléchisses un petit peu...
static permet de rendre permanente la valeur de la variable d'une fonction à chacun de ses appels.
Mais comme toutes les variables, une fois l'exécution du script terminé, elles "disparaissent" de la mémoire, elles n'existent plus... le script est terminé...
 
Les sessions, elles, permettent, grâce à des fichiers, de récupérer des infos d'un script exécuté précédemment.
 
Quand tu utilises Ajax, tu envoies une requête à chaque fois donc le script est ré-exécuté à chaque fois.

Reply

Marsh Posté le 25-03-2009 à 14:21:50    

Conclusion : les sessions sont obligatoires dans mon cas...
 
Merci pour tes explications :)


Message édité par DaSayan le 25-03-2009 à 14:21:59

---------------
Tous les programmeurs sont des auteurs et tous les ordinateurs sont de mauvais acteurs.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed