PHP Դասեր - Դաս 5 - Լոգիկական փոփոխականներ PHP-ում
Այսպիսով, մենք արդեն գիտենք, որ PHP-ում կան թվեր և տողեր։ Բայց սա սահմանը չէ․ այս դասում կդիտարկենք ևս մեկ տեսակի փոփոխականներ՝ Լոգիկական փոփոխականներ։ Դրանք այսպես են կոչվում, քանի որ օգտագործվում են կոդի տրամաբանություն կառուցելու համար։ Ենթադրենք մի իրավիճակ, երբ տարբեր պայմաններից կախված անհրաժեշտ է կատարել տարբեր գործողություններ։ Ունենք ջրով բաժակ, և ցանկանում ենք խմել։ Եթե ջուրը քիչ է, չենք հագենա, իսկ եթե շատ է՝ թեքելիս կարող է թափվել։ Հետևաբար՝ անհրաժեշտ է ջուր ավելացնել կամ հանել՝ կախված լցվածության աստիճանից։
Սա կարելի է պատկերացնել այսպես՝
$ջրի_քանակ_բաժակում = 100;
$քիչ_ջուր = TRUE;
Եթե $քիչ_ջուր
ապա $ջրի_քանակ_բաժակում = $ջրի_քանակ_բաժակում + 20;
Այս դեպքում $քիչ_ջուր փոփոխականը լոգիկական է, որը կարող է ունենալ միայն երկու արժեք՝ TRUE (ճիշտ) կամ FALSE (սխալ)։ Եվ ոչ ավելին։ Իսկ այժմ նույնը՝ PHP լեզվով․
$water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; }
Մասին if պայմանական օպերատորի կխոսենք ավելի ուշ, իսկ հիմա՝ TRUE և FALSE արժեքների մասին։ Բացի TRUE և FALSE-ից, հաճախ օգտագործվում են նաև 1 և 0։ Բայց ինչու՞ նախընտրել հենց TRUE և FALSE։ Հիշեցնեմ, որ ամբողջ թվերը հիշողության մեջ զբաղեցնում են երկու անգամ քիչ տարածք, քան կոտորակայինները։ Իսկ լոգիկական փոփոխականները՝ TRUE կամ FALSE, 4 անգամ ավելի քիչ հիշողություն են օգտագործում, քան ամբողջ թվերը, և 8 անգամ ավելի քիչ՝ քան կոտորակայինները։ Այդ պատճառով, այնտեղ որտեղ հնարավոր է՝ ցանկալի է օգտագործել TRUE կամ FALSE։
Հնարավոր է ձեզ հետաքրքրի՝ ի՞նչ կարևորություն ունի այդքան քիչ հիշողություն խնայելը, եթե սերվերն ունի օրինակ 8 ԳԲ RAM։ Բայց եկեք պատկերացնենք՝ կայքը պարունակում է 1000 ամբողջ թվային փոփոխական, որոնք կարող էին լինել լոգիկական։ Այսպիսով՝ միայն այդ փոփոխականների վրա ծախսվում է 4 ՄԲ, իսկ լոգիկականներով՝ 1 ՄԲ։ Եթե կայքը միաժամանակ այցելում են 100 օգտատերեր՝ տարբերությունը կդառնա 400 ՄԲ ընդդեմ 100 ՄԲ-ի։ Այսինքն՝ 300 ՄԲ խնայվում է։ Թեև սա պարզեցված օրինակ է, բայց սկզբունքը պարզ է։
Բացի այդ, հետաքրքիր է իմանալ՝ ինչպես են լոգիկական փոփոխականները փոխարկվում ամբողջ թվերի։
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>Արդյունքը կլինի 2։ Δηλαδή՝ PHP-ն ինքն իրեն կփոխարկի լոգիկական արժեքը և կկատարի գումարում, այնպես որ տեսակների անհամատեղելիությունից վախենալ պետք չէ։