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 :

Test valeur dans switch


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Par défaut Test valeur dans switch
    Bonjour

    Je me retrouve face à un problème étrange sur quelque chose de tout simple en apparence.
    Voici mon 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
     
    <?php 
    $text=$field->original_value;
    global $language;
     
    if($language->language=="en"){
    	switch ($text){
    		case "A l'étranger":
    			$text="Abroad";
    			break;
    		case "En France":
    			$text="In France";
    			break;
    	}
     
    }
     
    print $text;
    ?>
    Au début je récupère la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $text=$field->original_value;
    En déboguant avec Eclipse, je constate bien que ma variable $text prend la valeur "A l'étranger".
    Par contre lorsque je teste dans le switch (ou dans un if) si $text est égal à "A l'étranger"", le teste échoue.

    Par contre si je teste avec "En France" ça fonctionne bien.

    Est-ce que le fait qu'il y ai une apostrophe peut poser problème ?

    Auriez-vous une idée ?

    Merci

  2. #2
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    As-tu vérifié que est bien égale à 'en' ?

    Jisig

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Par défaut
    oui, je rentre bien dans le switch.

  4. #4
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    Normalement l'apostrophe ne devrait pas poser problème, ceci dit, je te conseille d'éssayer avec une variable plus simple comme 'test' et faire un echo de ta variable sur le site avant de la tester ce qui donnerait quelque chose de très similaire j'en conviens :

    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
     
    <?php 
    $text=$field->original_value;
    global $language;
     
    if($language->language=="en"){
                  echo $text;
    	switch ($text){
    		case "test":
    			echo "youuuhouuuuu ça fonctionne !";
    			break;
    		case "En France":
    			$text="In France";
    			break;
    	}
     
    }
    print $text;
    ?>

  5. #5
    Membre Expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Les tests sur des textes ne devraient jamais avoir lieu, et ceci est d'autant plus vrai avec un switch car en effet les apostrophes, les accents, les majuscules, les espaces, la ponctuation, l'encodage.. bref tout ça peut faire que deux chaînes ne sont pas égales alors qu'elles en ont l'air.
    Une chaîne qui sert à être tester (et non être afficher), doit uniquement être composée de caractères alphanumériques et être toujours aussi courtes que possible pour éviter toutes ambiguïtés.

    C'est probablement ce qui est la cause de ton problème.

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Par défaut
    du coup comment je peux faire ?
    J'ai essayé de forcer le format de la variable en "string", de supprimer l'apostrophe mais sans succès...

Discussions similaires

  1. Récupérer sur base d'un test de valeur dans xsl
    Par stujava dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/06/2009, 14h14
  2. Test sur valeurs dans un classeur excel
    Par driver dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/02/2009, 17h19
  3. Plusieurs valeurs dans un switch
    Par Sakapatate dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2007, 07h54
  4. Réponses: 2
    Dernier message: 08/12/2005, 14h41
  5. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38

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