Sobes.tech
Junior — Middle

Məlumatların link və dəyər vasitəsilə göndərilməsi arasındakı fərq nədir və bu, proqram daxilindəki məlumatların dəyişməsinə necə təsir edir?

sobes.tech Süni İntellekt

AI-dan cavab

Dəyər üzrə məlumatların göndərilməsi, dəyişəni funksiyaya ötürəndə onun nüsxəsinin yaradılması deməkdir. Funksiya daxilindəki dəyişikliklər orijinala təsir etmir. PHP-də bu, skalyar tiplər (int, string, bool) və massivlər üçün xarakterikdir (PHP 7-ə qədər yazarkən kopyalama ilə).

İstinadla göndərmə, funksiyaya orijinal verilənlərə istinadın ötürülməsidir və funksiyada edilən hər hansı dəyişikliklər orijinal dəyişəndə əks olunur. PHP-də bu, parametrdən əvvəl ampersand (&) ilə həyata keçirilir.

Nümunə:

function addOneByValue($num) {
    $num += 1;
}

function addOneByReference(&$num) {
    $num += 1;
}

$a = 5;
addOneByValue($a); // $a 5 qalacaq
addOneByReference($a); // $a 6 olacaq

Beləliklə, istinadla göndərmə funksiyaya ötürülən məlumatları dəyişməyə imkan verir, qiymətlə göndərmə isə yox.