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 :

Une condition ternaire


Sujet :

Langage PHP

  1. #1
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 453
    Points : 4 978
    Points
    4 978
    Par défaut Une condition ternaire
    Salut,
    j'ai une simple condition que je voudrais transformer en condition ternaire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $value=1==2?"1==2"
      :1==1?"1==1"
      :2==1?"2==1"
      :0;
    echo $value;//Affiche "2==1"

    Normalement $value devrait être "1==1" et pas "2==1", est ce que c'est php qui bug ou c'est moi qui ai fais une erreur de syntaxe ?
    Merci.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 912
    Points : 6 705
    Points
    6 705
    Par défaut
    Tel que tu l'écris, tes conditions sont lues de cette manière (de gauche à droite, chaque résultat de l'opérateur ternaire devient la condition pour le test suivant, sachant qu'une chaîne de caractères est toujours vraie sauf si elle est vide):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value = ((1==2 ? "1==2" : 1==1) ? "1==1" : 2==1) ? "2==1" : 0;
    J'imagine que c'est ce qu'entend le manuel par associativité à gauche.

    Mais toi tu souhaiterais qu'elles soient lues de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value = 1==2 ? "1==2" : (1==1 ? "1==1" : (2==1 ? "2==1" : 0));
    Tu dois donc ajouter des parenthèses pour contrôler l'ordre d'évaluation.

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 453
    Points : 4 978
    Points
    4 978
    Par défaut
    Parfait @CosmoKnacki, Merci pour tes explications.

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

Discussions similaires

  1. Une condition ternaire
    Par kentaro dans le forum jQuery
    Réponses: 4
    Dernier message: 30/10/2015, 21h31
  2. Réponses: 2
    Dernier message: 18/03/2014, 18h46
  3. Réponses: 5
    Dernier message: 29/09/2004, 12h05
  4. Réponses: 2
    Dernier message: 24/06/2004, 10h13
  5. comment vérifier qu'une table esclave vérifie une condition?
    Par loikiloik dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/04/2004, 17h48

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