Bonjour

j'ai mis les pieds dans les references, et transmission de variables.

L'idée c'est de partir d'une meme fonction et de transmettre les variables de 4 manieres differentes, reference de valeur, reference de fonction, globale, simple return.

Mais je suis pas vraiement sur d'avoir tout compris de ce qu'il se passe reelement.

donc voila ce que j'ai fait, j'ai commenté ce que je crois avoir compris.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
//passer une variable par reference (&)
function incrementer2(&$valeur)//$valeur devient reference de $a, donc $valeur devient $a.
  {
  $valeur = $valeur + 1;// équivaut à $a=$a+1, $valeur reste sur une portée locale.
  }
$a = 1;
incrementer2($a);
echo $a."<br />"; // affiche "2"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
// sans reference avec un return
function incrementer3($valeur)//$valeur recupere la valeur de $a soit 1
  {
  $valeur = $valeur + 1; // equivaut à $valeur = $valeur + 1
  return $valeur;
  }
$a = 1;
$a = incrementer3($a);// soit $a = le retour de la valeur de $valeur, 
echo $a."<br />"; // affiche "2", $valeur reste locale.

Bon alors les suivantes franchement je sais pas comment les prendre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
// retour de variable par reference
function &incrementer5($valeur)//
  {
  $valeur = $valeur + 1; // 
  return $valeur;
  }
$a = 1;
$a = &incrementer5($a);//
echo $a."<br />"; //
oui oui c'est exactement la meme que sans &, mais je vois pas comment ca peut fonctionner autrement, help !

et euh pour la globale mon echec est total, l'ex suivant ne marche pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
// avec une globale march epas
function incrementer4($valeur)//
  {
  global $valeur;
  $valeur = $valeur + 1; // 
  }
$a = 1;
incrementer4($a);//
$a=$valeur;
echo $a."<br />"; //

voila , c'est le brouillard total, on se croirait sur la tamise