v2.5.2
Giriş yap

Passing by Reference (&$) kullanım örnekleri?

obey00
418 defa görüntülendi

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?

tayfunerbilen
1023 gün önce

yani şöyle düşün, fonksiyonda parametre olarak geçtiğin elemanı değiştirmek istiyorsan ama onu geriye döndürmek yerine değerinin direk etkilenmesini istiyorsan kullanabilirsin, sonuçta fonksiyonun sadece onunla ilgili bir işlemi olmayabilir, ya da aldığın parametreye göre fonksiyon farklı bir işlem için değer döndürebilir ama alınan parametreninde bundan etkilenilmesi istenebilir.

kısaca referans aldığın değişkenin değerini etkiliyor bu şekilde kullanırsan, en basit örneği;

<?php

$text = 'hello';
function changeText(&$text) {
    $text .= ' world';
}
changeText($text);

echo $text; // hello world

başka bir örnek

<?php

$numbers = [2, 3, 5];
function multiply(&$nums) {
    $nums = array_reduce($nums, function($prev, $num) {
        $prev[] = $num * 2;
        return $prev;
    }, []);
}
multiply($numbers);

print_r($numbers);
/*
Array
(
    [0] => 4
    [1] => 6
    [2] => 10
)
 */

tabi bu olay sadece parametre geçmekle alakalı değil, örneğin şöyle kullanımlarıda var;

$text1 = 'hello';
$text2 = &$text1;

$text2 = 'deneme';
echo $text1;

$text2 oluşturulurken $text1 referansıyla oluşturuluyor, dolayısı ile $text2 değiştirince aslında referansı yani $text1 değişiyor. Bu tarz kullanımlara çok takılma, vakti gelirse zaten ihtiyacın olduğu bir noktada mutlaka kullanırsın :)