Erreur incompréhensible

Erreur incompréhensible - PHP - Programmation

Marsh Posté le 22-06-2008 à 14:35:13    

Hi all,
 
J'ai ressorti qques scripts pondus il y a quelques temps (tout fonctionnait et je n'ai pas touché au code entretemps), mais l'interpréteur php me sort une erreur que je n'avais pas auparavant :
 

Citation :

Parse error: syntax error, unexpected T_VARIABLE in C:\[...]\splash_acces_donnees.php on line 57


 
Et à la ligne 57 se trouve ceci :
 

Code :
  1. public $tab_vars_srv = array (
  2. 'srv_software'  => $_SERVER['SERVER_SOFTWARE'],
  3. 'srv_ip'   => $_SERVER['SERVER_ADDR'],
  4. 'srv_nom'   => $_SERVER['SERVER_NAME'],
  5. 'srv_port'   => $_SERVER['SERVER_PORT'],
  6. 'srv_protocole'  => $_SERVER['SERVER_PROTOCOL'],
  7. 'srv_date_heure' => date('d.m.Y') . ' / ' . date('H:i')
  8. );


 
Après un rapide coup d'oeil, je ne saisis pas ce qui coince (d'autant que ça fonctionnait auparavant  :heink: )
 
Si quelqu'un a une idée....  :hello:


Message édité par ANViL le 22-06-2008 à 15:27:20

---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
Reply

Marsh Posté le 22-06-2008 à 14:35:13   

Reply

Marsh Posté le 22-06-2008 à 15:08:13    

Bonjour,
Ne manquerait-il pas un point virgule à la fin de la ligne 56?
 
Question bête, mais on ne sait jamais...

Reply

Marsh Posté le 22-06-2008 à 15:21:16    

Hello et merci de ta réponse :)
 
Non, il ne manque pas de point-virgule à l'instruction précédente, voici d'ailleurs le code problématique et les lignes précédentes :
 

Code :
  1. public $tab_feuilles_css = array (
  2. 'nom_css_source' => 'style_splash.css',
  3. 'nom_css_dest'  => 'style_splash_AUTO.css'
  4. );
  5. public $tab_vars_srv = array (
  6. 'srv_software'  => $_SERVER['SERVER_SOFTWARE'],
  7. 'srv_ip'   => $_SERVER['SERVER_ADDR'],
  8. 'srv_nom'   => $_SERVER['SERVER_NAME'],
  9. 'srv_port'   => $_SERVER['SERVER_PORT'],
  10. 'srv_protocole'  => $_SERVER['SERVER_PROTOCOL'],
  11. 'srv_date_heure' => date('d.m.Y') . ' / ' . date('H:i')
  12. );


 
P.S: petite précision, la ligne exacte à laquelle l'interpréteur me sort l'erreur est la suivante :
 

Citation :

'srv_software'  => $_SERVER['SERVER_SOFTWARE'],


 
(si je la met en commentaire, c'est sur la suivante que bute l'interpréteur, et ainsi de suite..........................y a-t-il quelque chose qui serait succeptible de poser pb avec les variables superglobales de type $_SERVER  :??: )


Message édité par ANViL le 22-06-2008 à 15:27:30

---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
Reply

Marsh Posté le 22-06-2008 à 16:03:15    

Re,
 
Je ne m'y connait pas trop en php objet, mais il semblerait que tu ne puisses pas définir tes propriétés de classes à partir de variables.
Par contre, tu peux très bien les définir ainsi dans le constructeur.
 
Un truc de ce style la:

Code :
  1. class Foo {
  2. public $tab_vars_srv;
  3. function __construct() {
  4. $this -> tab_vars_srv = array (
  5. 'srv_software'  => $_SERVER['SERVER_SOFTWARE'],
  6. 'srv_ip'   => $_SERVER['SERVER_ADDR'],
  7. 'srv_nom'   => $_SERVER['SERVER_NAME'],
  8. 'srv_port'   => $_SERVER['SERVER_PORT'],
  9. 'srv_protocole'  => $_SERVER['SERVER_PROTOCOL'],
  10. 'srv_date_heure' => date('d.m.Y') . ' / ' . date('H:i')
  11. );
  12. }
  13. }


 
Ca ne fonctionne pas mieux ainsi?

Reply

Marsh Posté le 22-06-2008 à 17:06:00    

Citation :

There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here.

 

t es sur que c est pas juste la config de ton serveur qui a changé ?
(fais un test avec un php info)

Message cité 1 fois
Message édité par mIRROR le 22-06-2008 à 17:06:19

---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 22-06-2008 à 18:07:19    

Halike a écrit :

Re,
 
Je ne m'y connait pas trop en php objet, mais il semblerait que tu ne puisses pas définir tes propriétés de classes à partir de variables.
Par contre, tu peux très bien les définir ainsi dans le constructeur.
 
Un truc de ce style la:

Code :
  1. class Foo {
  2. public $tab_vars_srv;
  3. function __construct() {
  4. $this -> tab_vars_srv = array (
  5. 'srv_software'  => $_SERVER['SERVER_SOFTWARE'],
  6. 'srv_ip'   => $_SERVER['SERVER_ADDR'],
  7. 'srv_nom'   => $_SERVER['SERVER_NAME'],
  8. 'srv_port'   => $_SERVER['SERVER_PORT'],
  9. 'srv_protocole'  => $_SERVER['SERVER_PROTOCOL'],
  10. 'srv_date_heure' => date('d.m.Y') . ' / ' . date('H:i')
  11. );
  12. }
  13. }


 
Ca ne fonctionne pas mieux ainsi?


 
ça fonctionne effectivement :)
 
Mais le code posté fonctionnait auparavant (ancienne version de php ?). Ceci dit je ne saisis pas pourquoi ce serait 'plus correct' de passer par le constructeur pour initialiser les variables (et en outre on se retrouve avec un code constructeur kilométrique, je trouve plus clair d'initialiser les variables à la déclaration)
 

mIRROR a écrit :

Citation :

There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here.


 
t es sur que c est pas juste la config de ton serveur qui a changé ?
(fais un test avec un php info)


 
J'ai regardé, et j'ai bien toutes les variables superglobales de type $_server listées;


---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
Reply

Sujets relatifs:

Leave a Replay

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