Bonjour, je suis sur un dilemme (j'ai ce code ci dessous) et il se trouve que lors du print_r du bas, les valeurs modifiées par la fonction de calcule stoké dans mReturn sont appliquer a la variable de session correspondante ce que je ne comprend pas... Si quelqu'un a une idée... Merci

Exemple : mReturn[header] prend les valeurs par defaut dans $_SESSION[doc_depend] (du header correspondant), la fonction de calcule (calc_element_position) change la valeur de "x" (genre de 10 a 15) seulement la valeur est bonne dans mReturn[header] mais elle est ossi modifier dans $_SESSION[doc_depend] (du header correspondant)...

On diré que quand je fais "mReturn[header] = $_SESSION[doc_depend] (du header correspondant)" ca ce link...

Je comprend pas...

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
 
public function ajusteMiseEnPage() {
    $mReturn=array();
    if($this->idEnteteDePage && isset($_SESSION['doc_depend']->enteteDePage[$this->idEnteteDePage])) {
      $mReturn['header'] = $_SESSION['doc_depend']->enteteDePage[$this->idEnteteDePage];
    }
    if($this->idPiedDePage && isset($_SESSION['doc_depend']->piedDePage[$this->idPiedDePage])) {
      $mReturn['footer'] = $_SESSION['doc_depend']->piedDePage[$this->idPiedDePage];
    }
    if(isset($mReturn['header']) && isset($mReturn['footer'])) {
      $aSide = array('mgTop','mgBottom','mgLeft','mgRight');
      print_r($_SESSION['doc_depend']->enteteDePage);
      print_r($mReturn['header']);
      foreach($aSide as $sSide) {
        if($mReturn['header']['prop'][$sSide] > $mReturn['footer']['prop'][$sSide]) {
          $iEcart = $mReturn['header']['prop'][$sSide] - $mReturn['footer']['prop'][$sSide];
          $mReturn['header']['prop'][$sSide] = $mReturn['footer']['prop'][$sSide];
          $this->format->{$sSide} = $mReturn['header']['prop'][$sSide];
          if($sSide=='mgTop' || $sSide=='mgLeft') {
            $mReturn['header'] = calc_element_position($mReturn['header'],$sSide,$iEcart);
          }
        }elseif($mReturn['footer']['prop'][$sSide] > $mReturn['header']['prop'][$sSide]) {
          $iEcart = $mReturn['footer']['prop'][$sSide] - $mReturn['header']['prop'][$sSide];
          $mReturn['footer']['prop'][$sSide] = $mReturn['header']['prop'][$sSide];
          $this->format->{$sSide} = $mReturn['footer']['prop'][$sSide];
          if($sSide=='mgTop' || $sSide=='mgLeft') {
            $mReturn['footer'] = calc_element_position($mReturn['footer'],$sSide,$iEcart);
          }
        }
        print_r($_SESSION['doc_depend']->enteteDePage);
        print_r($mReturn['header']);
      }
    }
    return $mReturn;
  }