Junior — Middle
Маалыматтарды шилтемелер аркылуу жана маанилер аркылуу өткөрүүнүн айырмасы эмнеде жана бул программанын ичинде маалыматтарды өзгөртүүгө кандай таасир этет?
sobes.tech AI
AIден жооп
Маълумоттарды баён боюнча өткөрүү дегендик, өзгөрмөнү функцияга өткөргөндө анын көчүрмөсү түзүлөт дегенди билдирет. Функциянын ичинде жасалган өзгөртүүлөр оригиналга таасир этпейт. PHPда бул скаляр түрлөрү (int, string, bool) жана массивдер үчүн мүнөздүү (PHP 7ге чейин жазууда көчүрмө менен).
Байланыш аркылуу өткөрүү дегендик, функцияга оригиналдык маалыматтарга шилтеме берилет жана функциянын ичинде жасалган өзгөртүүлөр оригиналдык өзгөрмөгө таасир этет. PHPда бул параметрдин алдында амперсанд (&) аркылуу ишке ашырылат.
Мисал:
function addOneByValue($num) {
$num += 1;
}
function addOneByReference(&$num) {
$num += 1;
}
$a = 5;
addOneByValue($a); // $a калат 5
addOneByReference($a); // $a болот 6
Ушул жол менен, шилтеме аркылуу өткөрүү функцияга берилген маалыматтарды өзгөртүүгө мүмкүндүк берет, ал эми баа боюнча — жок.