Sobes.tech
Intern

Comment les variables sont-elles transmises en PHP?

sobes.tech IA

Réponse de l'IA

Les variables en PHP sont passées par valeur par défaut. Cela signifie que, lors de l'assignation d'une variable à une autre ou lors du passage d'une variable à une fonction, une copie de la valeur est créée. Les modifications apportées à cette copie n'affectent pas la variable d'origine.

Cependant, les variables peuvent également être passées par référence. Dans ce cas, au lieu d'une copie de la valeur, un pointeur vers la même zone mémoire que la variable d'origine est passé. Les modifications effectuées via la référence affectent directement la variable d'origine.

Le passage par référence est utilisé :

  • Assignation par référence : Utilisation de l'opérateur d'assignation avec l'esperluette (=&).

    // Assignation par référence
    $a = 10;
    $b =& $a;
    $b = 20; // Modifier $b modifie aussi $a
    // $a vaut maintenant 20
    
  • Passage d'un paramètre par référence à une fonction : Ajout d'une esperluette (&) avant le nom du paramètre dans la définition de la fonction.

    <?php
    // Fonction qui prend un argument par référence
    function modifyValue(&$value) {
        $value *= 2;
    }
    
    $number = 5;
    modifyValue($number);
    // $number vaut maintenant 10
    ?>
    
  • Retourner une valeur par référence depuis une fonction : Utilisation de l'esperluette (&) avant le nom de la fonction dans sa définition.

    <?php
    // Fonction qui retourne une valeur par référence
    function &getReference() {
        static $value = 0;
        $value++;
        return $value;
    }
    
    $a = &getReference();
    $a = 100; // Modifier $a modifie aussi la variable statique à l'intérieur de la fonction
    
    $b = &getReference(); // $b référence maintenant la même variable statique (égale à 101)
    ?>
    

Il est important de noter que certains types de données, comme les objets, sont toujours passés par référence (plus précisément, une référence à l'objet est transmise). Lorsqu'un objet est assigné à un autre, les deux variables font référence à la même instance d'objet.

Méthode de passage Comment ça fonctionne Utilisation
Par valeur Une copie de la valeur est créée Comportement par défaut, sûr pour la variable d'origine
Par référence Un pointeur vers la mémoire est passé Les modifications affectent directement la variable d'origine