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.