Diskuze: Co znamená, když funkci předávám hodnotu referencí a jak se to v PHP dělá?

PHP PHP Co znamená, když funkci předávám hodnotu referencí a jak se to v PHP dělá? American English version English version

Avatar
Daniel Gavalec:

ahoj, můžete mi poradit co to přesně znamená? Díky :)

 
Odpovědět 29. června 16:19
Avatar
shaman
Člen
Avatar
Odpovídá na Daniel Gavalec
shaman:

V PHP sa standardne funkcii odovzdavaju hodnoty premmennych. Ak sa tato hodnota vo funkcii zmeni, nie je tato zmena propagovana mimo funkcie.

function pridaj ($a) {
    $a++;
}

$a = 5;
pridaj($a); // vo vnutri sa $a zvysi na 6
echo $a; // vypise 5

Aby sa hodnota premennej vlozenej do funkcie zmenila aj mimo premennej, musis hodnotu predat referenciou

function pridaj (&$a) {
    $a++;
}

$a = 5;
pridaj($a);
echo $a; // vypise 6

Rozdiel je v definovani funkcie, kde pred hodnotu premennej predanej referenciou pridas znak &. Hodi sa to najme ked nevracias ziadnu hodnotu returnom ale chces vlozenu premennu priamo zmenit.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 29. června 16:39
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
 
Nahoru Odpovědět 29. června 17:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.