Passe une variable par reference
nickleus
Messages postés
384
Statut
Membre
-
pyschopathe Messages postés 2053 Statut Membre -
pyschopathe Messages postés 2053 Statut Membre -
Bonjour,
je n'arrive pas à faire la différence entre :
$a = $b;
et
$a =& $b;
j'ai beau lire les infos sur php.net, mais ce n'est pas claire pour moi.
Pourriez-vous m'expliquer comment ça fonctionne ou me donner un exemple concret ?
Merci beaucoup d'avance
je n'arrive pas à faire la différence entre :
$a = $b;
et
$a =& $b;
j'ai beau lire les infos sur php.net, mais ce n'est pas claire pour moi.
Pourriez-vous m'expliquer comment ça fonctionne ou me donner un exemple concret ?
Merci beaucoup d'avance
A voir également:
- Passe une variable par reference
- Trousseau mot de passe iphone - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Protéger un dossier par mot de passe - Guide
- Identifiant et mot de passe - Guide
4 réponses
Bsr
Normal car c'est loin d'être trivial.
Tout ceci est nettement mieux expliqué dans cet article (en anglais mais avec des schémas très détaillés)
https://derickrethans.nl/talks/phparch-php-variables-article.pdf
Normal car c'est loin d'être trivial.
Tout ceci est nettement mieux expliqué dans cet article (en anglais mais avec des schémas très détaillés)
https://derickrethans.nl/talks/phparch-php-variables-article.pdf
Les variables sont des noms permettant d'identifier des adresses en mémoire. Dans ces adresses, on stocke des données.
Par exemple :
Exemple:
J'espère avoir éclairci un peu ta lanterne, sinon n'hésite pas à demander des précisions.
Par exemple :
$a = 2 -> On réserve une zone de mémoire et on dit que "$a" pointe dessus. Ensuite on place la valeur 2 dedans. $b = 3 -> On réserve une zone de mémoire et on dit que "$b" pointe dessus. Ensuite on place la valeur 3 dedans.La différence entre les deux notations vient du fait que dans un cas, on copie la valeur contenu dans la case mémoire, dans l'autre, on fait pointer la variable vers une autre case.
Exemple:
cas 1: $a = $b -> $a = 3La valeur contenue par la variable b est copiée dans la variable a.
cas 2: $a =& $b -> $a = 3La variable a référence la même adresse mémoire que la variable b.
$b = 5 -> $a = 5On modifie la valeur référencée par b, donc la valeur référencée par a puisque les deux noms pointe sur le même emplacement mémoire.
J'espère avoir éclairci un peu ta lanterne, sinon n'hésite pas à demander des précisions.
Merci de votre aide. J'espère avoir compris. Donc cela voudrait-il dire que si :
$b = 1;
$a =& $b;
donc si le modifie la valeur de $a par 2 (par exemple), alors
$b == 2;
Est-ce que c'est ça ou alors j'ai rien compris ? ;)
$b = 1;
$a =& $b;
donc si le modifie la valeur de $a par 2 (par exemple), alors
$b == 2;
Est-ce que c'est ça ou alors j'ai rien compris ? ;)
Bjr
Oui c'est ça ;-)
En général les références sont utilisées avec les fonctions pour passer un paramètre qu'on veut modifier dans la fonction ou pour retourner une référence.
function addition($param)
{
$param+=100;
}
$a=10;
addition($a);
echo $a; // Affiche 10
function addition_par_reference(&$param)
{
$param+=100;
}
$a=10;
addition_par_reference($a);
echo $a; // Affiche 110
Quand aux objets depuis PHP 5 ils sont systématiquement passés par référence même sans l'utilisation du signe &
Oui c'est ça ;-)
En général les références sont utilisées avec les fonctions pour passer un paramètre qu'on veut modifier dans la fonction ou pour retourner une référence.
function addition($param)
{
$param+=100;
}
$a=10;
addition($a);
echo $a; // Affiche 10
function addition_par_reference(&$param)
{
$param+=100;
}
$a=10;
addition_par_reference($a);
echo $a; // Affiche 110
Quand aux objets depuis PHP 5 ils sont systématiquement passés par référence même sans l'utilisation du signe &