Sobes.tech
Junior — Middle

Ma'lumotlarni havola orqali va qiymat orqali yuborish qanday farq qiladi va bu dastur ichidagi ma'lumotlarni o'zgartirishga qanday ta'sir qiladi?

sobes.tech AI

AIdan javob

Ma'lumotlarni qiymat bo'yicha yuborish, o'zgaruvchini funktsiyaga o'tkazishda uning nusxasi yaratilishini anglatadi. Funktsiya ichidagi o'zgarishlar asliga ta'sir qilmaydi. PHPda bu skalyar turlar (int, string, bool) va massivlar uchun xosdir (PHP 7gacha yozishda nusxa ko'chirish bilan).

Referens orqali yuborish, funktsiyaga asl ma'lumotlarga havola yuborilishini anglatadi va funktsiya ichidagi har qanday o'zgarishlar asl o'zgaruvchiga ta'sir qiladi. PHPda bu parametr oldidan ampersand (&) bilan amalga oshiriladi.

Misol:

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

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

$a = 5;
addOneByValue($a); // $a 5 qoladi
addOneByReference($a); // $a 6 bo'ladi

Shunday qilib, referens orqali yuborish funktsiyaga uzatilgan ma'lumotlarni o'zgartirish imkonini beradi, qiymat bilan yuborish esa bermaydi.