Դաս 52 – PHP։ By Ref, By Val

0

Եթե ֆունկցիայի հետ նոր եք ցանոթացել և օգտագործում եք առաջին անգամ, ապա դրան սովորելը սկզբնական շրջանում կարող է բարդ լինել։ Եվս մեկ բարդություն է հասկանալը, թե ինչպես կարող են արժեքները փոխել, կամ չփոխվել, կախված scope-ից: Եթե հիշում եք, scope-ը  ցույց է տալիս թե կոդի որ հատվածում փոփոխականը կարելի է տեսնել: Եթե կրկնեք հետևյալը `

$Variable_Value = 10;
example( );

function example() {

print $Variable_Value;

}

ապա կստանաք PHP error “undefined variable”: Քանի որ example( )  կոչվող ֆունկցիան չի կարող տեսնել, թե ինչ է $ Variable_Value կոչված փոփոխականի ներսում է:

Դա ուղղելու համար դուք կարող եք սահմանել ֆունկցիան այնպես, որ այն ընդունի argument-ը։ Այնուհետև մուտքագրեք փոփոխականի անունը կլոր փակագծերում, երբ ցանկանաք այն գործարկել: Ահա այպես

<?PHP

$Variable_Value = 10;
example($Variable_Value);

function example($Variable_Value) {

print $Variable_Value;

}

?>

Եթե դուք գործարկեք վերը նշված կոդը, այն կարտատպի 10 համարը։ Կարևոր է հաշվի առնել, որ դուք ֆունկցիային պարզապես հանձնում եք փոփոխականի պատճենը: Դուք չեք նպաստում բնօրինակի վրա։ Օրինակի համար, փոխել ձեր կոդը այսպես․

<?PHP

$Variable_Value = 10;

print “Before the function call = ” . $Variable_Value . “<BR>”;

example($Variable_Value);

print “After the function call = ” . $Variable_Value;

function example($Variable_Value) {

$Variable_Value = $Variable_Value + 10;
print “Inside of the function = ” . $Variable_Value . “<BR>”;

}

?>

Այստեղ մենք ունենք երեք տպագիր statement՝ հայտարարություն: Մեկը մինչև function call-ը, մեկը ֆունկցիայի ներսում և մյուսը function call-ից հետո։ Սակայն մենք արտատպում ենք $ Variable_Value կոչված փոփականի արժեքը ամեն անգամ։ Ֆունկցիայի ներսում մենք ավելացնում ենք տասը արժեքի փոփոխական: Երբ գործարկեք կոդը այն կարտատպի հետևյալը․

Before the function call = 10
Inside of the function = 20
After the function call = 10

Առավել կարևոր է After the function call-ը։ Եթե նույնիսկ փոխենք $ Variable_Value արժեքը ֆունկցիայի ներսում, այն դեռևս կարտատպի 10 after the function call: Պատճառն այն է, որ այդ ֆունկցիան աշխատում էպատճենի հետ, այլ ոչ թե բնօրինակի:

Երբ ֆունկցիային հանձնում եք փոփախականի պատճենը, այն կոչվում է passing the variable by value։ Այլընտրանքը ոչ թե pass a copy-ն է, այլ անդրադարձը բնօրինակին։ Որոշակի մանր փոփոխություններ արեք կոդրում։

function example(&$Variable_Value) {

Միակ ավելացումը & նշանն կլոր փակագծերում։ Սա հրահանգ է PHP-ին, որ դուք ցանկանում եք փոփոխել բնօրինակը և պատճենը անհրաժեշտ չէ Ձեզ։ Երբ գործարկեք կոդը, այն արտատպում է հետևյալը․

Before the function call = 10
Inside of the function = 20
After the function call = 20

After the function call-ից առաջ այժմ մենք ունենք 20 արժեքը։ Փոփոխությունը կատարված է ֆունկցիայից դուրս։ Երբ կատարում եք նման փոփոխություններ բնօրինակի հետ, այն կոչվում է passing the variable by reference (հիշեք այն ուղղակի պատճեն չէ)։

Հաջորդ դասընթացում կուսումնասիրենք Server Variables-ը։

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.