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.