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 de ternaires


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 22
    Points : 66
    Points
    66
    Par défaut Problème de ternaires
    Bonjour à tous,

    je souhaite condenser le script ci dessous en utilisant les ternaires. Selon la valeur de $long, il me renvois un message différent ('Reponse 1', 'Reponse 2' ou 'Reponse 3'). J'ai donc converti tout cela (voir second script). Avec la valeur de $long à 4, il devrait me renvoyer 'Reponse 1' or il me renvois 'Reponse 2'. J'ai beau chercher, je ne résous pas le problème.

    Merci d'avance.


    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
    <?php
     
    $long = '4';
    $n_secu = '';
     
    if ($long < '7')
    $n_secu = 1;
    else if (($long > '6') && ($long < '10'))
    $n_secu = 2;
    else $n_secu = 3;
     
    if (!empty($n_secu))
    {
    	if ($n_secu === 1)
    	echo 'Reponse 1';
    	else if ($n_secu === 2)
    	echo 'Reponse 2';
    	else echo 'Reponse 3';
    };
     
    ?>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $long = '4';
    $n_secu = '';
     
    ($long < '7') ? $n_secu = 1 : (($long > '6') && ($long < '10')) ? $n_secu = 2 : $n_secu = 3;
     
    if (!empty($n_secu))
    {
    	echo ($n_secu === 1) ? 'Reponse 1' : ($n_secu === 2) ? 'Reponse 2' : 'Reponse 3';
    }
     
    ?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Attention a ne pas rendre ton code illisible en voulant gagner de la ligne de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $n_secu = $long < 7 ? 1 : ($long < 10 ? 2 : 3);

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 22
    Points : 66
    Points
    66
    Par défaut
    Merci pour la correction syntaxique

    Oui en général j'évite d'utiliser les ternaires quand j'ai plus de 2 conditions donc j'avais zappé les parenthèses notamment et également dans la partie affichage.

    Le code corrigé et fonctionnel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    $long = '4';
     
    $n_secu = $long < 7 ? 1 : ($long < 10 ? 2 : 3);
     
    if (!empty($n_secu))
    {
    	echo $n_secu === 1 ? 'Reponse 1' : ($n_secu === 2 ? 'Reponse 2' : 'Reponse 3');
    }
     
    ?>
    Merci encore.

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

Discussions similaires

  1. problème avec l'opérateur ternaire "? :"
    Par jmclej dans le forum C#
    Réponses: 5
    Dernier message: 21/04/2015, 13h22
  2. Problème expression ternaire
    Par l4r3nZu dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2012, 18h54
  3. Problème opérateur ternaire
    Par popy67 dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2008, 21h13
  4. [Normalisation] problème avec une les relations ternaires
    Par secondechance dans le forum Schéma
    Réponses: 8
    Dernier message: 13/09/2008, 14h35
  5. Réponses: 12
    Dernier message: 11/04/2006, 12h41

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