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 dans l'utilisation de CONST


Sujet :

Langage PHP

  1. #1
    Débutant 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
    Points : 170
    Points
    170
    Par défaut souci dans l'utilisation de CONST
    J'ai un souci et pourtant je pense bien faire mais PHP 5.3.2 me dit que non....
    Voici un extrait de la classe que je définis:

    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
    class Screen extends Sql
    {   var  $name , $title, $subtitle, $form , $submenu , $klimsg ;
    	var  $row , $open, $param_BASE, $fetch, $debug, $RC_sql, $RC_open ;
    
    	const NAME	 	= "name" ;
    	const TITLE 	= "title" ;
    	const SUBTITLE 	= "subtitle" ;
    	const FORM 		= "form" ;
    	const SUBMENU 	= "submenu" ;
    	const KLIMSG 	= "klimsg" ;
    
    	function __construct( $name , $title, $subtitle, $form , $submenu , $klimsg , $debug=false)	
    	{	......... 
    	}
    // =============================================================================================================================== //
    // =====================================================      Page Fuctions         ============================================== //
    // =============================================================================================================================== //
    .........
    .........                  l'inverse n'est pas aussi évident !   
    //   =========================================================================================================
    				case 1 :	user_error("Screen Case 1 - page read !" , E_USER_NOTICE) ;
    							if ( $this->row = $this->fetch_row($this->gu) )  
    								{	$this->__set(NAME 	 	, $this->row[NAME		]) ;
    		 						 	$this->__set(TITLE  	, $this->row[TITLE		]) ;
    						  			$this->__set(SUBTITLE 	, $this->row[SUBTITLE	]) ;
    								 	$this->__set(FORM		, $this->row[FORM		]) ;
    								  	$this->__set(SUBMENU	, $this->row[SUBMENU	]) ;
    								  	$this->__set(KLIMSG		, $this->row[KLIMSG		]) ;
    Notez les 2 pavés en gras.... C'est mon souci car voici ce que PHP me raconte:

    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
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant NAME - assumed 'NAME' in F:\WebSites\jecrapahute\class\screen.php on line 93
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant NAME - assumed 'NAME' in F:\WebSites\jecrapahute\class\screen.php on line 93
    [16-Apr-2010 17:19:18] PHP Notice:  Undefined index: NAME in F:\WebSites\jecrapahute\class\screen.php on line 93
     
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant TITLE - assumed 'TITLE' in F:\WebSites\jecrapahute\class\screen.php on line 94
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant TITLE - assumed 'TITLE' in F:\WebSites\jecrapahute\class\screen.php on line 94
    [16-Apr-2010 17:19:18] PHP Notice:  Undefined index: TITLE in F:\WebSites\jecrapahute\class\screen.php on line 94
     
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant SUBTITLE - assumed 'SUBTITLE' in F:\WebSites\jecrapahute\class\screen.php on line 95
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant SUBTITLE - assumed 'SUBTITLE' in F:\WebSites\jecrapahute\class\screen.php on line 95
    [16-Apr-2010 17:19:18] PHP Notice:  Undefined index: SUBTITLE in 
    F:\WebSites\jecrapahute\class\screen.php on line 95
     
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant FORM - assumed 'FORM' in F:\WebSites\jecrapahute\class\screen.php on line 96
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant FORM - assumed 'FORM' in F:\WebSites\jecrapahute\class\screen.php on line 96
    [16-Apr-2010 17:19:18] PHP Notice:  Undefined index: FORM in F:\WebSites\jecrapahute\class\screen.php on line 96
     
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant SUBMENU - assumed 'SUBMENU' in F:\WebSites\jecrapahute\class\screen.php on line 97
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant SUBMENU - assumed 'SUBMENU' in F:\WebSites\jecrapahute\class\screen.php on line 97
    [16-Apr-2010 17:19:18] PHP Notice:  Undefined index: SUBMENU in F:\WebSites\jecrapahute\class\screen.php on line 97
     
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant KLIMSG - assumed 'KLIMSG' in F:\WebSites\jecrapahute\class\screen.php on line 98
    [16-Apr-2010 17:19:18] PHP Notice:  Use of undefined constant KLIMSG - assumed 'KLIMSG' in F:\WebSites\jecrapahute\class\screen.php on line 98
    [16-Apr-2010 17:19:18] PHP Notice:  Undefined index: KLIMSG in F:\WebSites\jecrapahute\class\screen.php on line 98
    Je comprends dans le contexte PHP la 3 ième ligne de chaque groupe de 3 lignes correspondant à un attribut de la table adressée
    PHP assume en majuscule alors que la table et donc la $row reçu par la lecture mySQl est en miniscule, donc index inconnu....

    Mais pourquoi mes constantes ne sont-elles pas reconnues ?

    Merci de ce coup de main....

    Esteban

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Comme se sont des constantes de classes, il faudrait peut être les désigner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $this->__set(self::NAME, $this->row['NAME']);
    // Ou
    $this->__set(self::NAME, $this->row[self::NAME]);
    Voir du coté de la doc peut être : http://www.php.net/manual/fr/languag....constants.php

  3. #3
    Débutant 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
    Points : 170
    Points
    170
    Par défaut CONST de classe
    OK merci

    Esteban

  4. #4
    Débutant 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
    Points : 170
    Points
    170
    Par défaut Syntaxe CONST PHP
    D'un point de vue syntaxe, il me semble être plus simple de conserver la vieille syntaxe PHP!

    define ("XYZ"';abc") ;

    non, cela évite à chaque coup de penser au $this->

    Esteban

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Les deux ne font pas la même chose. Les constantes définies hors d'une classe (par define) sont définies pour l'ensemble de l'application et ne peuvent être changées. Celles définies dans une classe sont spécifiques à la classe. Une constante de classe, c'est en quelque sorte un attribut de classe constant et inchangé.

Discussions similaires

  1. petit soucis dans le main..
    Par Bibouda dans le forum C
    Réponses: 35
    Dernier message: 12/12/2005, 19h45
  2. "warning" dans eclipse (utiliser les Generic)
    Par Isher dans le forum Eclipse Java
    Réponses: 15
    Dernier message: 19/10/2005, 13h04
  3. de la bonne utilisation de const
    Par gangsoleil dans le forum C
    Réponses: 2
    Dernier message: 14/09/2005, 16h44
  4. [Select()/Focus()] Pb dans l'utilisation de ces méthodes
    Par Kylen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/06/2005, 15h54
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 22h39

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