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.
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;
 
  }
}
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
<?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;
 
}
Le HTML
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();
}
mon echo reste vide