IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Souci de syntaxe avec constant [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Souci de syntaxe avec constant
    Bonjour;

    J'ai un souci avec les constantes en PHP
    J'utilise tjs la "vieille" syntaxe utilisant define que le nouvelle que je trouve plus lourde à l'écriture....
    Bref, voici un extrait de mon de constantes que j'inclus partout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //
    //	includes/class/screen.php
    //	=========================
    define("SCREEN"		, 	"screen"	) ;
    define("TITLE"   	, 	"title"		) ;
    define("SUBTITLE"  	, 	"subtitle"	) ;
    define("FORM"      	, 	"form"		) ;
    define("MENU"   	, 	"menu"	    ) ;
    define("SUBMENU"   	, 	"submenu"	) ;
    define("KLIMSG"    	, 	"klimsg"	) ;
    define("BOTTOM"    	, 	"bottom"	) ;
    define("MUSTMBER"  	, 	"mustmber"	) ;
    define("SITE"      	, 	"site"		) ;
    define("DEBUG"     	, 	"debug"		) ;
    Je n'ai pas de problème de parsing PHP dans le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    require_once $_SERVER['DOCUMENT_ROOT'] . "/class/setScreen.php";
    /* ------------------------------------------------------------------------------------------------------------------------------ */
    /**
    * Exécution: chaque page aura ce même style d'instruction
    *
    */	
    $obj = new setScreen($debug=false) ;
    $obj->__setParam(SCREEN   , "index"                               									) ;
    $obj->__setParam(TITLE    , "Bienvenue sur le site de " . $site . "!" 								) ;
    $obj->__setParam(SUBTITLE , "Les non-membres dsireux de nous contacter sont pris de le faire"		) ;
    $obj->__setParam(FORM     , "index" 																) ;
    $obj->__setParam(MENU 	  , "index"																	) ;
    $obj->__setParam(SUBMENU  , "index"																	) ;
    $obj->__setParam(KLIMSG   ," Bienvenue sur le site de " . $site . "!"								) ; 
    $obj->__setParam(MUSTMBER , 0																		) ;
    Par contre dans le code suivant et avec les mêmes constantes, le parsing râle.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    PAGE: newScreen.php
    //
    //      prise en charge de la page lue
    //		==============================
    Ligne 59 ==> 
      $this->screen      	= $this->TBL_screen [SCREEN  ] 		 ;
    		$this->title   		= $this->TBL_screen [TITLE   ]   	 ;
    	  	$this->subtitle 	= $this->TBL_screen [SUBTITLE] 		 ;
      		$this->form     	= $this->TBL_screen [FORM    ]		 ;
    	  	$this->submenu  	= $this->TBL_screen [SUBMENU ]   	 ;
      		$this->klimsg   	= $this->TBL_screen [KLIMSG  ] 		 ;
    		$this->mustmber     = $this->TBL_screen [MUSTMBER] 		 ;
      		$this->bottom   	= $this->TBL_screen [BOTTOM  ] 		 ;                    
            $this->site   	    = "jecrapahute"	;
    Voici mon log PHP.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: screen in F:\WebSites\jecrapahute\class\newScreen.php on line 59
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: title in F:\WebSites\jecrapahute\class\newScreen.php on line 60
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: subtitle in F:\WebSites\jecrapahute\class\newScreen.php on line 61
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: form in F:\WebSites\jecrapahute\class\newScreen.php on line 62
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: submenu in F:\WebSites\jecrapahute\class\newScreen.php on line 63
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: klimsg in F:\WebSites\jecrapahute\class\newScreen.php on line 64
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: mustmber in F:\WebSites\jecrapahute\class\newScreen.php on line 65
    [04-Jul-2010 13:07:51] PHP Notice:  Undefined index: bottom in F:\WebSites\jecrapahute\class\newScreen.php on line 66
    J'en perds mon latin... non mon PHP.....
    Merci à la personne qui m'expliquera...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    As-tu controlé ce que contenait $this->TBL_screen ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut
    voila réponse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [SCREEN] => index [TITLE] => Bienvenue sur le site de [Jecrapahute]! [SUBTITLE] => Les non-membres dsireux de nous contacter sont pris de le faire [FORM] => index [MENU] => index [SUBMENU] => index [KLIMSG] => Bienvenue sur le site de [Jecrapahute]! [MUSTMBER] => 0 )
    du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    
    print_r($this->TBL_screen) ;
      ;  				$this->MasterInst = Skeleton::getInstance( false /* No session */ , $this->TBL_screen, $debug=FALSE ) ;
     				$this->MasterInst->execute() ;
    			}
    	}
    	
    /**
    * Validation finale, avons-nous tout ce qu'il nous faut ?
    *
    */	
    	function validate()
    	{	//
    		//  check if one MUST screen property is filled
    		//  MAYBE, both throw EXECPTIONS are redondant!
    		// 	-------------------------------------------
    		$must = 0 ;
    		for ($i = 0 ; $i < $this->Max ; $i++)
    		{	if ($this->Ok[$i][MUST])
    				if ($this->Ok[$i][SET])
    					$must++; 
    				else
    					throw new EXCEPTION("MUST properpy[".$name."] not set for SCREEN definition") ;
    		}
    		if ($must < $this->cntMust)
    			throw new EXCEPTION("MUST properpy is missing not set for SCREEN definition") ;
    		return(true) ;
    	}
    	
    /**
    * Validation de l'instruction : __setParam
    *
    */	
    	function __setParam($name,$value)
    	{	//
    		//  check if filled
    		//  check for duplicated
    		//  check if property recognized
    		// 	----------------------------
    		if (empty($name))
    			{	throw new EXCEPTION("__setParam ERROR - name of property empty for SCREEN definition") ; 
    			}
    		else
    			{	$name = strtoupper($name) ;
    				for ($i = 0 ; $i < $this->Max ; $i++)
    				{	if ( strcmp( strtoupper($this->Ok[$i][NAME]) , $name  ) == 0 )
    						if ($this->Ok[$i][SET] == true)
    							throw new EXCEPTION("Duplicated variable[".$name."] for SCREEN definition") ;
    						else
    							{	$this->Ok[$i][NAME]  = $name  ;
    								$this->Ok[$i][SET]   = true   ;
    					 			$this->Ok[$i][INIT]  = $value ;
    								
    								//
    								//	Construction du tableau associatif à passer au skeleton
    								//	=======================================================
    								$this->TBL_screen[$name] = $value ;    
    								return ;
    							}
    Voilà, il y a un blèm... ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton __setParam() enregistre les index en majuscules alors que tu les appelles en minuscules.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut setParams
    Oui et c'est fait express.... ce sont des champs d'une table mySQL.
    Que je sache (ou c'est par convention et/ou habitude) les constantes ont toujours été exprimées en majuscules.
    Donc pour moi écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define("MYCONSTANT" , "myconstant") ;
    Ne me pose aucun problème à condition de toujours pouvoir utiliser la constante en question, et le problème est qu'il semble que je ne puisse.
    Raison du post auxquel tu as répondu.

    Merci tout de même

  6. #6
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut Définition Constantes
    Je viens de faire la modification que tu suggères:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //
    //	includes/class/screen.php
    //	=========================
    define("SCREEN"		, 	"SCREEN"	) ;
    define("TITLE"   	, 	"TITLE"		) ;
    define("SUBTITLE"  	, 	"SUBTITLE"	) ;
    define("FORM"      	, 	"FORM"		) ;
    define("MENU"   	, 	"MENU"	    ) ;
    define("SUBMENU"   	, 	"SUBMENU"	) ;
    define("KLIMSG"    	, 	"KLIMSG"	) ;
    define("BOTTOM"    	, 	"BOTTOM"	) ;
    define("MUSTMBER"  	, 	"MUSTMBER"	) ;
    define("SITE"      	, 	"SITE"		) ;
    define("DEBUG"     	, 	"DEBUG"		)
    Et voic mon log.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: BOTTOM in F:\WebSites\jecrapahute\class\newScreen.php on line 66
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: SCREEN in F:\WebSites\jecrapahute\class\newSkelt.php on line 182
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: TITLE in F:\WebSites\jecrapahute\class\newSkelt.php on line 183
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: SUBTITLE in F:\WebSites\jecrapahute\class\newSkelt.php on line 184
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: FORM in F:\WebSites\jecrapahute\class\newSkelt.php on line 185
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: MENU in F:\WebSites\jecrapahute\class\newSkelt.php on line 186
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: SUBMENU in F:\WebSites\jecrapahute\class\newSkelt.php on line 187
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: KLIMSG in F:\WebSites\jecrapahute\class\newSkelt.php on line 188
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing METATAGS[] in F:\WebSites\jecrapahute\config\myPage.php on line 24
    [04-Jul-2010 19:00:23] PHP Notice:  =>Query OK in F:\WebSites\jecrapahute\class\newMsg.php on line 96
    [04-Jul-2010 19:00:23] PHP Notice:  =>NUMROWS[1] in F:\WebSites\jecrapahute\class\newMsg.php on line 100
    [04-Jul-2010 19:00:23] PHP Notice:  =>FETCH OK in F:\WebSites\jecrapahute\class\newMsg.php on line 105
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing file[KLIMSG] in F:\WebSites\jecrapahute\config\myPage.php on line 122
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing variable -> Form in F:\WebSites\jecrapahute\config\myPage.php on line 166
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing file[TITLE] in F:\WebSites\jecrapahute\doc\do_index.php on line 27
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing file[SUBTITLE] in F:\WebSites\jecrapahute\doc\do_index.php on line 41
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: BOTTOM in F:\WebSites\jecrapahute\class\newScreen.php on line 66
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: SCREEN in F:\WebSites\jecrapahute\class\newSkelt.php on line 182
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: TITLE in F:\WebSites\jecrapahute\class\newSkelt.php on line 183
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: SUBTITLE in F:\WebSites\jecrapahute\class\newSkelt.php on line 184
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: FORM in F:\WebSites\jecrapahute\class\newSkelt.php on line 185
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: MENU in F:\WebSites\jecrapahute\class\newSkelt.php on line 186
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: SUBMENU in F:\WebSites\jecrapahute\class\newSkelt.php on line 187
    [04-Jul-2010 19:00:23] PHP Notice:  Undefined index: KLIMSG in F:\WebSites\jecrapahute\class\newSkelt.php on line 188
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing METATAGS[] in F:\WebSites\jecrapahute\config\myPage.php on line 24
    [04-Jul-2010 19:00:23] PHP Notice:  =>Query OK in F:\WebSites\jecrapahute\class\newMsg.php on line 96
    [04-Jul-2010 19:00:23] PHP Notice:  =>NUMROWS[1] in F:\WebSites\jecrapahute\class\newMsg.php on line 100
    [04-Jul-2010 19:00:23] PHP Notice:  =>FETCH OK in F:\WebSites\jecrapahute\class\newMsg.php on line 105
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing file[KLIMSG] in F:\WebSites\jecrapahute\config\myPage.php on line 122
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing variable -> Form in F:\WebSites\jecrapahute\config\myPage.php on line 166
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing file[TITLE] in F:\WebSites\jecrapahute\doc\do_index.php on line 27
    [04-Jul-2010 19:00:23] PHP Warning:  Substition made for missing file[SUBTITLE] in F:\WebSites\jecrapahute\doc\do_index.php on line 41
    [04-Jul-2010 19:00:23] PHP Notice:  POST_EXECUTE in F:\WebSites\jecrapahute\class\newSkelt.php on line 164
    [04-Jul-2010 19:00:23] PHP Notice:  Signon instanciated ! in F:\WebSites\jecrapahute\class\newSignon.php on line 26
    [04-Jul-2010 19:00:23] PHP Notice:  Signon executing ! in F:\WebSites\jecrapahute\class\newSignon.php on line 44
    J'ai plus d'erreur qu'avant.... mais ceci est trop long à expliquer.

    Je te rappelle ma question INITIALE.... pourquoi je ne peux les utiliser ces fichues constantes ??

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Souci de syntaxe avec group by
    Par Rémiz dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/09/2009, 17h31
  2. Soucis de syntaxe avec un switch case
    Par Olivier Regnier dans le forum Langage
    Réponses: 1
    Dernier message: 16/08/2009, 14h33
  3. souci syntaxe avec quote
    Par mussara dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2009, 11h26
  4. [langage] Pb de syntaxe avec GOTO
    Par BEAUJAULT dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2004, 16h02
  5. [langage] ptit souci de syntaxe
    Par marouanitos dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2003, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo