Junior — Middle
Ինչպես են տարբերվում տվյալների փոխանցումը հղումով և արժեքով, և դա ինչպես է ազդում ծրագրի ներսում տվյալների փոփոխության վրա?
sobes.tech AI
Պատասխան AI-ից
Տվյալների փոխանցումը արժեքով նշանակում է, որ երբ փոխանցում եք փոփոխականը ֆունկցիային, այն ստեղծում է դրա պատճենը: Ֆունկցիայի ներսում փոփոխությունները չեն ազդում սկզբնաղբյուրի վրա: PHP-ում դա բնորոշ է սքալարային տիպերի (int, string, bool) և զանգվածների համար (PHP 7-ով մինչև՝ պատճենում գրելու ժամանակ):
Հղման միջոցով փոխանցումը նշանակում է, որ ֆունկցիային փոխանցվում է տվյալների հղում, և ցանկացած փոփոխություն ֆունկցիայի ներսում արտացոլվում է սկզբնաղբյուր փոփոխականում: PHP-ում դա իրականացնում է սիմվոլի առաջ ampersand (&) օգտագործելով։
Օրինակ՝
function addOneByValue($num) {
$num += 1;
}
function addOneByReference(&$num) {
$num += 1;
}
$a = 5;
addOneByValue($a); // $a կմնա 5
addOneByReference($a); // $a կդառնա 6
Այսպիսով, հղման միջոցով փոխանցումը թույլ է տալիս ֆունկցիային փոփոխել փոխանցված տվյալները, իսկ արժեքով — ոչ։