Sobes.tech
Intern

Hogyan kerülnek átadásra a változók PHP-ben?

sobes.tech MI

Válasz az MI-től

A PHP változók alapértelmezés szerint érték szerint kerülnek átadásra. Ez azt jelenti, hogy amikor egy változó értékét egy másiknak hozzárendeljük, vagy egy változót egy függvénynek adunk át, akkor az érték másolata jön létre. A másolatban végrehajtott változtatások nem befolyásolják az eredeti változót.

Azonban, a változók átadhatók referencia szerint is. Ebben az esetben, ahelyett, hogy az érték másolatát adnánk át, egy mutató kerül átadásra ugyanarra a memóriahelyre, ahol az eredeti változó található. A referencia által végrehajtott módosítások közvetlenül hatnak az eredeti változóra.

A referencia szerinti átadás a következő esetekben használatos:

  • Referencia szerinti hozzárendelés: Az =& operátor használata.

    // Referencia szerinti hozzárendelés
    $a = 10;
    $b =& $a;
    $b = 20; // A $b változtatása megváltoztatja a $a-t is
    // Most $a értéke 20
    
  • Paraméter átadása referencia szerint egy függvénynek: A függvény paraméter nevének elé & jelzőt írunk.

    <?php
    // Függvény, amely referencia szerint kap argumentumot
    function modifyValue(&$value) {
        $value *= 2;
    }
    
    $number = 5;
    modifyValue($number);
    // Most $number értéke 10
    ?>
    
  • Visszatérés referencia szerint egy függvényből: A függvény nevének elé & jelet írunk a definícióban.

    <?php
    // Függvény, amely referencia szerint ad vissza értéket
    function &getReference() {
        static $value = 0;
        $value++;
        return $value;
    }
    
    $a = &getReference();
    $a = 100; // A $a változtatása megváltoztatja a függvényen belüli statikus változót
    
    $b = &getReference(); // Most $b ugyanarra a statikus változóra hivatkozik (ami 101)
    ?>
    

Fontos megjegyezni, hogy néhány adattípus, például az objektumok, mindig referencia szerint kerülnek átadásra (pontosabban, referencia az objektumra). Objektum hozzárendelése másik változóhoz ugyanarra az objektum példányra hivatkozik.

Átadási módszer Hogyan működik Használat
Érték szerint Másolat készül az értékről Alapértelmezett viselkedés, biztonságos az eredeti változóra nézve
Referencia szerint Mutató kerül átadásra A változtatások közvetlenül hatnak az eredeti változóra