Utiliser une fonction PHP à l'intérieur d'une clas

chabinot Messages postés 391 Statut Membre -  
chabinot Messages postés 391 Statut Membre -
Bonjour,
J'ai créé une classe PHP dans laquelle j'ai une fonction qui fait appel à une fonction PHP (array_multisort).
Quand je lance l'application, il semble avoir un problème au moment d'appel de cette fonction.
Je mets le source de la classe :
<?php 

class Month extends Date
{
   public $year;
   public $month;
   public $holidays  = [];
   public $feries    = [];
   public $catho     = [];
   public function __construct(?int $year = null)
   {
      if ($year === null) {
         $year = intval(date('Y'));
      }
      $this->year = $year;
   }
public function getHolidays() : array
   {
      $array = [
         "Jour de l'an",
         "Lundi de pâques",
         "Lundi de pentecôte",
         "Ascension",
         "Fête du travail",
         "Victoire des alliés",
         "Fête nationale",
         "Assomption",
         "Toussaint",
         "Armistice 1918",
         "Noël",
      ];

      return $array;
   }
public function getFeries() : array
   {
      $this->feries[] = $this->year . '0101';                          // Jour de l'an
      $this->feries[] = $this->lundiPaques($this->year);               // Lundi de pâques
      $this->feries[] = $this->lundiPentecote($this->year);            // Lundi de pentecôte
      $this->feries[] = $this->ascension($this->year);                 // Ascension
      $this->feries[] = $this->year . '0501';                          // Fête du travail
      $this->feries[] = $this->year . '0508';                          // Victoire des alliés
      $this->feries[] = $this->year . '0714';                          // Fête nationale
      $this->feries[] = $this->year . '0815';                          // Assomption
      $this->feries[] = $this->year . '1101';                          // Toussaint
      $this->feries[] = $this->year . '1111';                          // Armistice 1918
      $this->feries[] = $this->year . '1225';                          // Noël

      return $this->feries;
   }
public function displayFeries()
   {
      $array1 = $this->getHolidays();
      $array2 = $this->getFeries();
      array_multisort($array2, $array1);
      $count = count($array1);
      // Formattage de l'affichage
      for ($i = 0; $i < $count; $i ++) { 
         $result = '<div class="feries__libday">';
         $result .= '<div class="feries__libday-day">';
         $result .= $array1[$i];
         $result .= '</div><!-- /.feries__libday-day -->';
         $result .= '<div class="feries__libday-jour">';
         $result .= $this->rtvWeekDay($array2[$i]);
         $result .= '</div><!-- /.feries__libday-jour -->';
         $result .= '<div class="feries__libday-numday">';
         $result .= $this->rtvDay($array2[$i]);
         $result .= '</div><!-- /.feries__libday-numday -->';
         $result .= '<div class="feries__libday-month">';
         $result .= $this->rtvMonth($array2[$i]);
         $result .= '</div><!-- /.feries__libday-month -->';
         $result .= '</div><!-- /.feries__libday -->';

         echo $result;
      }
   }

Le nombre de post de $array1 et de $array2 est exactement le même.
Merci de votre aide

Cordialement

1 réponse

  1. chabinot Messages postés 391 Statut Membre 16
     
    Le sujet est résolu, voilà la solution
    <?php 
    
    class Month extends Date
    {
       public $year;
       public $month;
       public $holidays  = [];
       public $feries    = [];
       public $cathol    = [];
       public $catho     = [];
       public function __construct(?int $year = null)
       {
          if ($year === null) {
             $year = intval(date('Y'));
          }
          $this->year = $year;
       }
    public function getHolidays() : array
       {
          $holidays = [
             "Jour de l'an",
             "Lundi de pâques",
             "Lundi de pentecôte",
             "Ascension",
             "Fête du travail",
             "Victoire des alliés",
             "Fête nationale",
             "Assomption",
             "Toussaint",
             "Armistice 1918",
             "Noël",
          ];
    
          $this->holidays = $holidays;
    
          return $this->holidays;
       }
    public function getFeries() : array
       {
          $feries[] = $this->year . '0101';                          // Jour de l'an
          $feries[] = $this->lundiPaques($this->year);               // Lundi de pâques
          $feries[] = $this->lundiPentecote($this->year);            // Lundi de pentecôte
          $feries[] = $this->ascension($this->year);                 // Ascension
          $feries[] = $this->year . '0501';                          // Fête du travail
          $feries[] = $this->year . '0508';                          // Victoire des alliés
          $feries[] = $this->year . '0714';                          // Fête nationale
          $feries[] = $this->year . '0815';                          // Assomption
          $feries[] = $this->year . '1101';                          // Toussaint
          $feries[] = $this->year . '1111';                          // Armistice 1918
          $feries[] = $this->year . '1225';                          // Noël
    
          $this->feries = $feries;
    
          return $this->feries;
       }
    public function dspFeries()
       {
          $array1 = $this->getHolidays();
          $array2 = $this->getFeries();
          $count  = count($array1);
          array_multisort($array2, $array1);
          // Formattage de l'affichage
          for ($i = 0; $i < $count; $i ++) { 
             $result = '<div class="feries__libday">';
             $result .= '<div class="feries__libday-day">';
             $result .= $array1[$i];
             $result .= '</div><!-- /.feries__libday-day -->';
             $result .= '<div class="feries__libday-jour">';
             $result .= $this->rtvWeekDay($array2[$i]);
             $result .= '</div><!-- /.feries__libday-jour -->';
             $result .= '<div class="feries__libday-numday">';
             $result .= $this->rtvDay($array2[$i]);
             $result .= '</div><!-- /.feries__libday-numday -->';
             $result .= '<div class="feries__libday-month">';
             $result .= $this->rtvMonth($array2[$i]);
             $result .= '</div><!-- /.feries__libday-month -->';
             $result .= '</div><!-- /.feries__libday -->';
    
             echo $result;
          }
       }
    

    Cordialement
    0