Bonjour,

Quelqu'un pourrait m'expliquer à quoi sert de passer par reference un argument à l'intérieur d'une fonction ?
Je débute en php et ai lu tous les tutoriels sur ce sujet sans ne rien y comprendre (Je débute en php depuis quelques jours seulement....).

Dans l'exemple ci-dessous (le même sur quasiment tous les sites) il est "expliqué" le passage d'argument par reference :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
function add_some_extra(&$string)
{
$string .= ', et un peu plus.';
}
 
$str = 'Ceci est une chaîne';
add_some_extra($str);
echo $str;
?>

A quoi bon faire cela puice que l'exemple ci-dessous affiche exactement le même résultat ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?php function afficher($arg)
{
print ("$arg, et un peu plus");
}							
 
$sol1 = "Ceci est une chaine";
$sol2 = "Ceci est une autre chaine";
afficher ($sol1);
?>
Lorsque j'utilise des valeurs numériques, j'ai bien compris que l'argument passé par reference est censé garder en mémoire le résultat des itérations précédentes mais dans ce cas pourquoi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function calcul(&$resultat, $a, $b)
{
$resultat = $a + $b;
print ("$resultat <br>");
}
 
 
$resultat = 0;		  
calcul ($resultat, 4,3); //Affiche 7 ok
calcul ($resultat, 4,3); //Affiche toujours 7 (je voudrais 14).
?>
Merci de ben vouloir m'expliquer car la....