Menu

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

chabinot 145 Messages postés mardi 10 novembre 2015Date d'inscription 18 avril 2018 Dernière intervention - 12 avril 2018 à 08:25 - Dernière réponse : chabinot 145 Messages postés mardi 10 novembre 2015Date d'inscription 18 avril 2018 Dernière intervention
- 12 avril 2018 à 09:20
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
Afficher la suite 

1 réponse

Répondre au sujet
chabinot 145 Messages postés mardi 10 novembre 2015Date d'inscription 18 avril 2018 Dernière intervention - 12 avril 2018 à 09:20
0
Utile
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
Commenter la réponse de chabinot