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
Ин тариқ, пешниҳоди тавассути истинод имкон медиҳад, ки функсия маълумотҳои додаашударо тағир диҳад, дар ҳоле ки тавассути арзиш — не.