bonjour
j'ai quelques lacunes sur la notion d'héritage
j'essaye de récupère des valeurs d'une class pour être traitée dans une deuxieme class
1ere class la parente celle là tout fonctionne.
2eme classe qui hérite qui ne me renvoie rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 class prod{ private $_datedebutFR; private $_datefinFR; private $_datedebutEN; private $_datefinEN; public function datedebutFR(){ return $this-> _datedebutFR;} public function datefinFR(){ return $this-> _datefinFR;} public function datedebutEN(){ return $this-> _datedebutEN;} // hydratation affectation aux setters des valeurs de la base de données public function hydrate(array $donnees) { foreach ($donnees as $key => $value)// parcours du tableau des données { $method = 'set'.ucfirst($key);// la clef = nom du setter (majuscule pour respecter le nommage) if (method_exists($this, $method)) { // On appelle le setter. $this->$method($value); } } } public function setDatedebut($datedebut) { if (is_string($datedebut)){ list($an,$mois,$jour)=explode("-",$datedebut); $modif=$an."-".$mois."-".$jour; $modifFR=$jour."-".$mois."-".$an; $this->_datedebutEN = $modif; $this->_datedebutFR=$modifFR; } } public function setDatefin($datefin) { if (is_string($datefin)){ list($an,$mois,$jour)=explode("-",$datefin); $modif=$an."-".$mois."-".$jour; $modifFR=$jour."-".$mois."-".$an; $this->_datefinEN = $modif; $this->_datefinFR=$modifFR; } }
Le HTML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php include_once"prod.class.php"; class calculjour extends prod{ private $_jtravail; private $_duree; public function duree(){ return $this-> _duree;} public function jourtravail(){return $this-> _jtravail;} public function setdifference(){ $datedebut=parent::datedebutEN(); $datefin=parent::datefinEN(); echo"datefin". $datefin; $datetime1 = new DateTime($datedebut); $datetime2 = new DateTime($datefin); $interval = $datetime1->diff($datetime2); $this_duree= $interval->format('%a'); $i=0; $moislettre = array("janvier" ,"février","mars","avril","mai", "juin","juillet","août","septembre","novembre","décembre" ); $mois1=$datetime1->format('m'); $jourtravaille= array(); while ($i-1<$this_duree){ $jourtravaille[$i]=$datetime1->format('d')+$i; $i++; } $this->_moistravail=$moislettre[$mois1-1]; $this->_jtravail=$jourtravaille; $this_duree++; if($this_duree>1)$this_duree=$this_duree." jours"; else$this_duree=$this_duree." jour"; $this->_duree=$this_duree; }
mon echo reste vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 while ($donnees=$affich_equipe->fetch()){ $intermittent=new intermittent(); $intermittent->hydrate($donnees); $prod=new prod(); $prod->hydrate($donnees); $calculjour=new calculjour(); echo $calculjour->setdifference(); }
Partager