double condition if

Eléphanteau du PHP | 25 Messages

01 oct. 2006, 16:24

Salut,

Je bloque sur un truc.
Je voudrais savoir s'il est possible de faire une double condition "if" ?
sinon quelle est la syntaxe dans une condition if d'un truc comme ça : date_debut > today > date_fin ?

En fait je voudrais mettre en subrillance, dans une liste, la ligne où ma date d'aujourd'hui est comprise dans une fourchette.

Merci !

ViPHP
ViPHP | 3607 Messages

01 oct. 2006, 16:48

if($date_debut > $today && $today > $date_fin){
}
ou sinon
if($date_debut > $today){
  if($today > $date_fin){
    echo "deux conditions vérifiées!";
  } else {
    echo "une seule condition vérifiées";
  }
}

Eléphanteau du PHP | 25 Messages

01 oct. 2006, 17:11

merci !

Invité
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 18:39

un petit résolu?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

01 oct. 2006, 18:47

Pour améliorer la lisibilité, il est préférable de regrouper les tests et d'utiliser les parenthèses :
//
if (($today>$date_debut) && ($today<$date_fin))
:!: les tests étaient inversés dans le premier exemple de jojolapine.
(regarde bien le sens des opérateurs de comparaison, son test ne retournera aucun résultat...) ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

01 oct. 2006, 19:02

Je tiens tout de meme a apporter une précision
if( ($date_debut > $today) && ($today > $date_fin) ){
//($date_debut > $today) && ($today > $date_fin)
}
else
{
//($date_debut <= $today) && ($today <= $date_fin)
}
Alors que
if($date_debut > $today){
  if($today > $date_fin){
    //($date_debut > $today) && ($today > $date_fin)
  } else {
    //($date_debut > $today) && ($today <= $date_fin)
  }
}
Vous remarquerez que le else de ces deux manières d'imbriquer les if est très différentes.

Donc, même s'il est vrai que le 1ere écriture est plus lisible, il est possible qu'il soit obligé d'utiliser la seconde ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 3607 Messages

01 oct. 2006, 22:29

Pour améliorer la lisibilité, il est préférable de regrouper les tests et d'utiliser les parenthèses :
//
if (($today>$date_debut) && ($today<$date_fin))
:!: les tests étaient inversés dans le premier exemple de jojolapine.
(regarde bien le sens des opérateurs de comparaison, son test ne retournera aucun résultat...) ;)
ben en fait pour tout dire, j'ai juste recopier sont
date_debut > today > date_fin
mais c'est vrai que ça ne va pas en pratique... pardon :oops: