Ինչպես փոխանցել փոփոխականները PHP-ում?
sobes.tech AI
Պատասխան AI-ից
PHP-յում փոփոխականները ըստ նախնական արժեքի փոխանցվում են: Սա նշանակում է, որ երբ մի փոփոխականի արժեքը նշանակվում է մյուսին կամ փոխանցվում է ֆունկցիային, ստեղծվում է արժեքի պատճեն: Այս պատճենում կատարված փոփոխությունները չեն ազդում սկզբնական փոփոխականի վրա:
Այնուամենայնիվ, փոփոխականները կարող են փոխանցվել նաև հղումով: Այս դեպքում, փոխարեն արժեքի պատճենի, փոխանցվում է նույն հիշողության տարածքի ցուցիչը, ինչ սկզբնական փոփոխականը: Հղումով կատարված փոփոխությունները ուղղակիորեն ազդում են սկզբնական փոփոխականի վրա:
Հղումով փոխանցումը օգտագործվում է՝
-
Հղումով նշանակում: Օպերատոր
=&-ով:// Հղումով նշանակում $a = 10; $b =& $a; $b = 20; // $b-ի փոփոխությունը փոխում է նաև $a-ին // հիմա $a հավասար է 20 -
Փոխանցում ֆունկցիային հղումով: Ֆունկցիայի սահմանման մեջ պարամետրի անունից առաջ ավելացնել
&:<?php // Ֆունկցիա, որը ընդունում է պարամետր հղումով function modifyValue(&$value) { $value *= 2; } $number = 5; modifyValue($number); // հիմա $number հավասար է 10 ?> -
Արժեքի վերադարձ հղումով ֆունկցիայից: Ֆունկցիայի սահմանման մեջ անունից առաջ օգտագործել
&:<?php // Ֆունկցիա, որը վերադարձնում է արժեք հղումով function &getReference() { static $value = 0; $value++; return $value; } $a = &getReference(); $a = 100; // փոփոխությունը փոխում է ֆունկցիայի մեջ գտնվող ստատիկ փոփոխականը $b = &getReference(); // $b հղում է նույն ստատիկ փոփոխականին (արժեքը 101) ?>
Կարևոր է նշել, որ որոշ տվյալների տեսակներ, ինչպես օրինակ, օբյեկտները, միշտ փոխանցվում են հղումով (կամ ավելի ճիշտ՝ հղում է փոխանցվում օբյեկտին): Երբ մի օբյեկտը փոխանցվում է մյուսին, երկու փոփոխականներն էլ հղում են անում նույն օբյեկտի օրինակին:
| Փոխանցման մեթոդ | Ինչպես է աշխատում | Օգտագործում |
|---|---|---|
| Մասին արժեք | Ստեղծվում է արժեքի պատճեն | Դեպի սկզբնական փոփոխականի անվտանգ, որպես կանխարգելում |
| Հղումով | Փոխանցվում է հիշողության ցուցիչը | Փոփոխությունները անմիջապես ազդում են սկզբնական փոփոխականի վրա |