http://php.net/manual/en/language.references.whatdo.php
Wiem, że oznacza to referencję, ale oni podają example na funkcjach, w czym się gubię i nie potrafię właściwie pojąć pewnych funkcjonalności.
<?php function zwrocKwadrat ($var) { $var =* $var; return $var; } function zwrocOrazUtworzKwadrat (&$var) { $var =* $var; return $var; } $zm = 2; ?>
$nazwa = 'plik.php';
<?php $p =& $_POST; // teraz jak zmienimy coś w zmiennej $p to zmieni się to także w zmiennej $_POST i na odwrót; po prostu zmienna $_POST jest dostępna pod inną nazwą ?>
<?php function zwrocKwadrat ($var) { $var *= $var; // jeżeli nawet to nie działa (nie wierzę w to) to spróbuj $var = $var * $var; return $var; } function zwrocOrazUtworzKwadrat (&$var) { $var *= $var; return $var; } $zm = 2; ?>
<?php function zwrocKwadrat ($var) { $var *= $var; return $var; } $zm = 4; zwrocKwadrat($zm); // 16 // pozyzsza funkcja jest rownoznaczna z: zwrocKwadrat(4); // innymi słowy, zmienna, z której pochodzi wartość jest nieistotna ?>
<?php function zwrocOrazUtworzKwadrat (&$var) { $var *= $var; return $var; } zwrocOrazUtworzKwadrat(4); // chyba nie zadziała, nie pamiętam czy takie coś errory wyrzucało $zm = 4; zwrocOrazUtworzKwadrat($zm); // 4 /* ogólnie można powiedzieć, że podczas wykonywania funkcji dzieje się coś takiego: zwrocOrazUtworzKwadrat($var =& $zm) czyli na czas wykonywania funkcji zmienna $var, która występuje w tej funkcji, jest odpowiednikiem zmiennej $zm; jest jej referencją potem oczywiście zmiennej $var nie będziesz miał i referencji już nie będzie, ale wartość zmiennej $zm zostanie zmieniona */ ?>