Przekazywanie przez referencje

Przekazywanie przez referencje

Możesz przekazać zmienną do funkcji poprzez referencję, by funkcja mogła modyfikować swoje parametry. Skłania jest jak następuje:

<?php
function foo (&$zmienna)
{
    
$zmienna++;
}

$a=5;
foo ($a);
// $a jest równe 6 w tym momencie
?>
Weź pod uwagę to, że nie ma znaku odwoływania się przez referencję przy wywoływaniu funkcji - istnieje tylko w definicji funkcji. Sama definicja funkcji jest wystarczającym miejscem do zaznaczenia przekazywania argumentów przez referencję.

Przez referencję mogą być przekazywane następujące rzeczy:

  • Zmienne, np. foo($a)
  • Instrukcja new, np. foo(new foobar())
  • ReferencjÄ™, zwracane z funkcji, np.:

    <?php
    function &bar()
    {
        
    $a 5;
        return 
    $a;
    }
    foo(bar());
    ?>
    Zobacz również wyjaśnienia na temat zwracania przez referencję.

Każde inne wyrażenie nie powinno być przekazywane przez referencję, ponieważ wynik takiego przekazania jest nieprzewidywalny. Dla przykładu, poniższe przykłady przekazywania przez referencję są niepoprawne:

<?php
function bar() // Zwróć uwagÄ™ na brak &
{
    
$a 5;
    return 
$a;
}
foo(bar());

foo($a 5); // Wyrażenie, nie zmienna
foo(5); // StaÅ‚a, nie zmienna
?>
Te wymagania są dla PHP 4.0.4 i wyższych wersji.


prezent dla szefa | wieszaki plastikowe | folia do faxu | mapa Rewal | druk kraków | meble biurowe | zwrot podatku
Design by flankerds.com