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 :

problème avec l'instruction switch


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 445
    Points : 139
    Points
    139
    Par défaut problème avec l'instruction switch
    Bonjour,

    j'ai dans un fichier de config des constantes qui sont déclarées. dans un autre fichier php, j'écris une fonction qui renvoie l'une ou l'autre constante en fonction des paramètres passés à la fonction :

    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
    function getRed($pid, $annee) {
    	switch($pid){
     
    		case 1:
    			if ($annee==1998 || $annee==2009) {$red = EFX_COLOR_N98_R;}
    			elseif ($annee==1999) {$red = EFX_COLOR_N99_R;}
    			elseif ($annee==2000) {$red = EFX_COLOR_N00_R;}
    			elseif ($annee==2001) {$red = EFX_COLOR_N01_R;}
    			elseif ($annee==2002) {$red = EFX_COLOR_N02_R;}
    			elseif ($annee==2003) {$red = EFX_COLOR_N03_R;}
    			elseif ($annee==2004) {$red = EFX_COLOR_N04_R;}
    			elseif ($annee==2005) {$red = EFX_COLOR_N05_R;}
    			elseif ($annee==2006) {$red = EFX_COLOR_N06_R;}
    			elseif ($annee==2007) {$red = EFX_COLOR_N07_R;}
    			elseif ($annee==2008) {$red = EFX_COLOR_N08_R;}
     
    			break;
     
    		case 2:
     
    			if ($annee==1998 || $annee==2009) {$red = EFX_COLOR_S98_R;}
    			elseif ($annee==1999) {$red = EFX_COLOR_S99_R;}
    			elseif ($annee==2000) {$red = EFX_COLOR_S00_R;}
    			elseif ($annee==2001) {$red = EFX_COLOR_S01_R;}
    			elseif ($annee==2002) {$red = EFX_COLOR_S02_R;}
    			elseif ($annee==2003) {$red = EFX_COLOR_S03_R;}
    			elseif ($annee==2004) {$red = EFX_COLOR_S04_R;}
    			elseif ($annee==2005) {$red = EFX_COLOR_S05_R;}
    			elseif ($annee==2006) {$red = EFX_COLOR_S06_R;}
    			elseif ($annee==2007) {$red = EFX_COLOR_S07_R;}
    			elseif ($annee==2008) {$red = EFX_COLOR_S08_R;}
     
    			break;
    		case 3:
     
    			if ($annee==1998 || $annee==2009) {$red = EFX_COLOR_P98_R;}
    			elseif ($annee==1999) {$red = EFX_COLOR_P99_R;}
    			elseif ($annee==2000) {$red = EFX_COLOR_P00_R;}
    			elseif ($annee==2001) {$red = EFX_COLOR_P01_R;}
    			elseif ($annee==2002) {$red = EFX_COLOR_P02_R;}
    			elseif ($annee==2003) {$red = EFX_COLOR_P03_R;}
    			elseif ($annee==2004) {$red = EFX_COLOR_P04_R;}
    			elseif ($annee==2005) {$red = EFX_COLOR_P05_R;}
    			elseif ($annee==2006) {$red = EFX_COLOR_P06_R;}
    			elseif ($annee==2007) {$red = EFX_COLOR_P07_R;}
    			elseif ($annee==2008) {$red = EFX_COLOR_P08_R;}
     
    			break;
     
    	}
     
    	return $red;
    }
    si $pid est égal à 1, je récupère bien la valeur de la constante, mais si $pid=2 ou 3, je récupère dans $red le nom de la constante correspondante et non sa valeur.

    qu'est ce qui cloche ??

    Merci,

    Nico

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Moi je vois rien de spécial niveau code

    Par contre, si pour un $pid <> 1, tu as le nom de la constante et non sa valeur, c que la constante n'est pas définie (je regarderais plutôt de ce côté là)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 445
    Points : 139
    Points
    139
    Par défaut
    Autant pour moi, il y avait effectivement une erreur dans le fichier de déclaration des constantes.

    Nico

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

Discussions similaires

  1. Problème avec l'instruction "mid"
    Par baykus dans le forum VB.NET
    Réponses: 4
    Dernier message: 11/01/2008, 15h33
  2. [aide]probléme avec l'instruction group by
    Par diden138 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/05/2007, 07h09
  3. Problème avec une instruction VBA
    Par Jpeg69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2007, 12h58
  4. Problème avec l'instruction IN : 16 bits retournés
    Par HadiNET dans le forum Assembleur
    Réponses: 4
    Dernier message: 11/02/2006, 17h43
  5. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56

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