Autor Zpráva
Monkeys
Profil *
Co znamena amper pred premennou:

function test(& $a)
{
$a[1] = "c";
return $a;
}

$v = array(1=> "a", "b");

skusal som to aj bez toho amperu ale vysledok je rovnaky. vrati prvky c,b
Aky to ma zmysel ? Hladal som, ale o tomto znaku som v dokumentacii nic nenasiel (ani neviem pod cim to mam hladat).

M.
Kubo2
Profil
Monkeys:
Pod references.
juriad
Profil
Pěkně je vidět rozdíl například na této ukázce.
function nastav($b) { # hodnota argumentu se překopíruje a její změna nijak neovlivní hodnotu venku
  $b = 2;
}

$a = 1;
nastav($a);
echo $a; # 1

function skutecne_nastav(&$b) { # hodnota argumentu se protuneluje a její změna ovlivní hodnotu venku
  $b = 2;
}

$a = 1;
skutecne_nastav($a);
echo $a; # 2
Monkeys
Profil *
Ak som to z php manualu spravne pochopil tak to sposobuje priamy odkaz do pamate kde sa (pole, premenna) nachadza.

juriad:
ovlivní hodnotu venku

co znamena hodnota vonku ? Ako mam tomu rozumiet.

M.
Rfilip
Profil
hodnota venku = hodnota vne funkce
Monkeys
Profil *
Funkciam rozumiem ale pri tom amp mi neako unika podstata, vyznam toho celeho :)
Neviem si predstavit ani vyuzitie v praxi.

M.
juriad
Profil
Nedávno jsem to použil Jednorozměrné pole z vícerozměrného.
Potřeboval jsem, aby hodnotu přidal na konec toho samého pole v každé úrovni rekurze.
Zkus si po spustit a pak odstraň ten & a zkus to znovu. :)
Monkeys
Profil *
juriad:
Zkus si po spustit a pak odstraň ten & a zkus to znovu

Presne to robim :)

Ale nasiel som zaujimavy clanok co sa tejto temy tyka no utvorte si kazdy svoj nazor.
http://schlueters.de/blog/archives/125-Do-not-use-PHP-references.html


juriad: vdaka za ochotu a tvoj cas

M.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: