P°edßvßnφ referencφ (odkazem)

M∙╛ete p°edßvat prom∞nnou do funkce pomocφ odkazu, tak╛e funkce m∙╛e modifikovat jejφ argumenty. Syntaxe je nßsledujφcφ:

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);
// $a je te∩ 6

V╣imn∞te si, ╛e ve volßnφ funkce nenφ znak reference - pouze v jejφ definici. Samotnß definice funkce staΦφ na sprßvnΘ p°edßvßnφ argumentu odkazem.

Nßsledujφcφ v∞ci lze p°edßvat referencφ:

  • Prom∞nnß, nap°. foo($a)

  • Konstrukt s new, nap°. foo(new foobar())

  • Reference, vracenß z funkce, nap°.:

    function &bar()
    {
        $a = 5;
        return $a;
    }
    foo(bar());

    Viz takΘ vysv∞tlenφ vracenφ p°es reference.

«ßdnΘ jinΘ v²razy nemohou b²t p°edßvßny odkazem, v²sledek tohoto nenφ definovßn. Nap°φklad, nßsledujφcφ ukßzky p°edßvßnφ odkazem jsou neplatnΘ:

function bar() // V╣imn∞te si chyb∞jφcφho &
{
    $a = 5;
    return $a;
}
foo(bar());

foo($a = 5) // V²raz, nikoli prom∞nnß
foo(5) // Konstanta, nikoli prom∞nnß

Tyto po╛adavky platφ pro PHP 4.0.4 a pozd∞j╣φ.