Partage
  • Partager sur Facebook
  • Partager sur Twitter

Description d'une ligne de code

x

Sujet résolu
    28 mai 2017 à 18:14:57

    Bonjour , on m'a présenté une syntaxe que je n'ai jamais vu auparavant :

    *** Contexte : <input name="id" type="text"  placeholder="123" value="<?php echo !empty($id)?$id:'';?>">

    *** Problème :

    <?php echo !empty($id)?$id:"";?>

    J'ai du mal à l’interpréter , ça veut dire que si le champ n'est pas vide au chargement de la page ,alors on le vide ? Et à quoi sert le dans ce cas ?
    Le ? sert à le mettre dans le post sur le nom de l'adresse ? 

    -
    Edité par Random15665465 28 mai 2017 à 18:28:17

    • Partager sur Facebook
    • Partager sur Twitter
      28 mai 2017 à 18:28:41

      Structure ternaire, ça revient à un if/else : si la variable n'est pas vide, on affiche sa valeur sinon rien (la chaîne vide en fait).

      C'est laid mais en PHP on utilise assez souvent ça car c'est ce qu'on a de plus court à disposition (beaucoup de langages ont généralement une "meilleure" syntaxe pour réaliser l'équivalent)

      On pourrait aussi écrire : &lt;?php if (!empty($id)) echo $id &gt; mais &lt;?= !empty($id) ? $id : '' &gt; est plus court et ça permet aussi surtout de l'intégrer à autre chose (comme une concaténation : $string .= 'input type="checkbox" name="foo[' . $k . ']" ' . (in_array($k, $_POST['foo']) ? 'checked' : '') . $v;).

      -
      Edité par julp 28 mai 2017 à 18:55:39

      • Partager sur Facebook
      • Partager sur Twitter
        28 mai 2017 à 18:33:48

        Comme le dit Julp il s'agit de la structure ternaire, une syntaxe alternative pour if-else (pas de elseif).

        // ceci
        $a = empty($b) ? 5 : 4;
        
        // est pareil que ceci
        if(empty($b)) {
           $a = 5;
        } else {
           $a = 4;
        }


        Je dirais pas que c'est laid contrairement à Julp, mais effectivement il ne faut pas en abuser, au risque de nuire àla lisibilité. Il est certains cas de figure, en revanche, où c'est utile.

        -
        Edité par Darth Killer 28 mai 2017 à 18:35:19

        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2017 à 18:49:02

          Merci à vous ! Je comprends beaucoup mieux ><
          • Partager sur Facebook
          • Partager sur Twitter

          Description d'une ligne de code

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown