Exécution du code incorrecte

Résolu/Fermé
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 - 12 oct. 2012 à 12:10
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 - 13 oct. 2012 à 11:07
Bonjour,

s'il vous plait mon code PHP s'exécute d'une manière incorrecte enfait j'ai créé mon propre classe Date:
class Date
    {
        public $j;
        public $m;
        public $a;
        public function __construct  ($_j ,$_m ,$_a )
        {
             $j=$_j; $m=$_m; $a=$_a;
        }
        public function compare(Date $d)
        {
		    echo "exécution compare<br>";
            if( ($this->a)>($d->a))
			 return 1;
			else
			if( $this->a<$d->a)
			 return -1;
			 
            if( $this->m>$d->m)
			 return 1;
			else
			if( $this->m<$d->m)
			 return -1;
			 
            if( $this->j>$d->j)
			 return 1;
			else
			if( $this->j<$d->j)
			 return -1;
			if(( $this->j=$d->j)&&( $this->m=$d->m)&&( $this->a=$d->a))
			return 0;
        }
    }



lorsque je veux comparer 2 date à l'aide de ce code toujours le promgramme affiche "egaux"
$date_debut = new Date('01','02','2000');
$date_fin = new Date('01','02','1999');



merci bien de m'aider à comprendre mon problème
A voir également:

2 réponses

Utilisateur anonyme
12 oct. 2012 à 14:33
Bonjour

Le code a l'air correct, à un détail près :
if(( $this->j=$d->j)&&( $this->m=$d->m)&&( $this->a=$d->a))

il faut comparer avec des ==, pas des =
De plus, il est totalement inutile de comparer, car tu as épuisé les autres cas : quand tu es rendu là, tu as forcément $a, $j et $m égaux entre tes deux variables. Il faut donc supprimer complètement cette ligne.

Peux-tu montrer le bout de code qui utilise la méthode compare pour afficher "egaux" ? Ça ne m'étonnerait pas qu'il y ait un problème dans la manière dont le test est fait.
0
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
13 oct. 2012 à 11:07
Merci beaucoup "le père" :il faut comparer avec des ==, pas des =

le problème est résolut


bon journée
0