Mit lehet referenciákkal tenni

A PHP referenciák lehetőséget adnak arra, hogy egy értékhez két nevet redelj. Ez azt jelenti, hogy amikor a következőt teszed:


$a =& $b;

     

az $a és $b nevek ugyanarra az értékre hivatkoznak.

Megjegyzés: Az $a és a $b nevek teljesen egyenrangúak. Nem arról van szó, hogy az $a a $b-re mutat, vagy fordítva, hanem arról, hogy az $a és a $b név ugyanannak az értéknek két elnevezése.

Ugyanez a forma használható az olyan függvényeknél, amik referenciát adnak vissza, vagy a new operátor használatakor (a PHP 4.0.4 és későbbi verziókban):


$obj =& new valamilyen_osztaly();
$ize =& valtozo_kereses ($valami);

    

Megjegyzés: Ha nem a fenti módszert alkalmazod, az $obj = new valamilyen_osztaly() kóddal kapott $obj nem ugyanaz az érték lesz, mint a $this a konstruktorban. Tehát ha a $this referenciát használód a konstruktorban, referencia hozzárendelést kell alkalmaznod, különben két különböző objektummal dolgozol.

A cím szerinti paraméterátadás a másik dolog, amit referenciákkal el lehet érni. Ezzel a hívott függvény egy lokális változója és a hívó környezet egy változója ugyanazt az értéket jelentik. Például:


function ize (&$valtozo)
{
    $valtozo++;
}

$a = 5;
ize ($a);

     

Ez a kód az $a változó értékét 6-ra állítja. Ez azért történik meg, mivel az ize függvényben a $valtozo egy referencia az $a változó értékére. Lásd még a részletes leírást a cím szerinti átadásról.

A harmadik dolog, amit referenciákkal tehetsz, az a cím szerinti visszetérés.