Passing by Reference (&$) kullanım örnekleri?
Dök. link: https://www.php.net/manual/en/language.references.pass.php
function (&$param1) { ..... }
şeklinde kullanımlarla karşılaştım ancak bunu özellikle kullanım amacı nedir? Ne amaçla kullanılır tam olarak?
Ben de daha evvel kullandığım iki şekli ile örnek vereyim, mantık aynı tabii de örnek çeşitliliği açısından.
Bir diziyi döngüye soktuğumuzda başka bir array daha oluşturmadan içindeki değerleri direkt olarak değiştirebilmek için foreach gibi döngülerde kullanabilirsin;
$array = ['item 1', 'item 2', 'item 3', 'item 4', 'item 5'];
foreach ($array as $index => &$item) {
$item = "item $index";
}
print_r($array);
// Array
// (
// [0] => item 0
// [1] => item 1
// [2] => item 2
// [3] => item 3
// [4] => item 4
// )
Ya da belki bazen recursive bir anonim fonkiyon yazmak istersin, fonksiyonun döndürdüğü değeri yine aynı fonksiyonda kullanmak istersin;
$func = function ($param) use (&$func) {
$return = $param * 3;
if ($return < 50)
return $func($return);
return $return;
};
echo $func(2);
// 54
Örnekler biraz garip olabilir ama aklıma ilk gelen şeyi yaptım :)