Comment gérer l'opérateur "ou" en php

Résolu
Bonjour,

Je n'ai pas trouvé de solution simple pour gérer le "ou" en php. En fait je voudrais définir dans mon blog que par exemple les catégories 10, 15 et 11 ont une couleur de fond rouge. J'ai essayé "||" mais cela affecte la couleur à d'autres catégories.

Comment faire sans les distinguer ligne par ligne ?


<?php if(is_category('4') ):
$bg=vert;
elseif (is_category('10')||('15')||('11') ):
$bg=rouge;
else :
$bg=orange;
endif; ?>

3 réponses

  1. Bonjour

    Le "ou" en PHP se comporte comme dans les autres langages, du moins ceux que je connais.
    C'est une opération entre variable booléennes, c'est à dire vraies ou fausses.
    Quand tu écris
    is_category('10')||('15')||('11')
    , tu fais un "ou" entre 3 choses :
    is_category('10')
    ,
    ('15')
    et
    ('11')
    .
    Je ne sais pas ce que vaut la première, je suppose qu'elle vaut 'vrai' si une certaine catégorie vaut '10' et 'faux' sinon.
    Mais '15' et '10' sont toujours vrais en php, car ils ne valent pas 0. Et un 'ou' avec quelque chose de toujours vrai est toujours vrai.
    Je suppose que ce que tu voulais écrire, c'était
    is_category('10')||is_category('15')||is_category('11')
    1. on peut écrire tout simplement
      is_category (array (10, 15, 11))

      comme expliqué dans la page du codex wordpress
      codex.wordpress.org/fr:Marqueurs_conditionnels
      1. Oui c'est bien ça, j'essaie peu à peu d'avoir la logique php :) Merci !
        1. De rien :)
          Mais ça n'est pas une logique propre au php.