PHP ပရိုဂရမ်တွင်ရွေးချယ်စရာမျိုးစုံကိုဖွင့်ထားခြင်းရှိမရှိဆုံးဖြတ်ရန်ကျွန်ုပ်တို့မကြာခဏလိုအပ်သည်။ ဥပမာအားဖြင့် configuration item တွင် binary flags များစွာပါ 0 င်နိုင်သည်။ တရားစီရင်ခြင်းသည်လူတစ် ဦး အားတရားသူကြီးတစ် ဦး ဖြစ်လျှင် အသုံးပြုသည်။ စင်စစ်အားဖြင့် PHP ၏ Built-in Bettec () function သည်ဤသို့သောတရားစီရင်ခြင်းမျိုးကိုအလျင်အမြန်နားလည်သဘောပေါက်ရန်နှင့်စုံတွဲနှင့်ထိရောက်သောကျင့်ထုံးကိုရေးရန်ပေါင်းစပ်ထားသောကွန်ပျူတာများကိုပေါင်းစပ်ရန်ကူညီနိုင်သည်။
Bindec () သည် PHP built-in function ဖြစ်သည်။ ၎င်းသည်အက္ခရာများ 0 'နှင့်' 1 'ဖြင့်ဖွဲ့စည်းထားသော string ကိုလက်ခံရရှိပြီးသက်ဆိုင်ရာဒ decimal မတန်ဖိုးကိုပြန်ပို့သည်။
ဥပမာ -
<?php
$binary = "1011";
$decimal = bindec($binary); // 11
echo $decimal;
?>
ကျွန်ုပ်တို့တွင် configuration string တစ်ခုရှိသည်ဆိုပါစို့။ ဂဏန်းတစ်ခုစီသည်ရွေးချယ်စရာတစ်ခုဖြစ်ခြင်းရှိမရှိကိုကိုယ်စားပြုသည်။
$options = "10101"; // ညွှန်ပြ1、3、5ရွေးချယ်စရာများကိုဖွင့်ထားသည်
သက်ဆိုင်ရာဒ decimal မတန်ဖိုးကိုရရှိရန် Bindec ($ ရွေးစရာများ) ကို ခေါ်ပါ။
<?php
$options = "10101";
$decimal = bindec($options); // 21
?>
အကယ်. တိကျသော option ကိုဖွင့်ထားရှိမရှိကိုသင်ဆုံးဖြတ်လိုပါကတတိယရွေးချယ်မှု (လက်ဝဲဘက်သို့ရေတွက်ခြင်း) ကဲ့သို့သင်အနည်းငယ်သာတွက်ချက်ရန်လိုအပ်သည်။
<?php
$decimal = bindec("10101"); // 21
$flag = 1 << 2; // 1 ။3bitmas,မှ0စတင်ပါ,2代表1 ။3မြင်းဇက်ကြိုး
$is_enabled = ($decimal & $flag) !== 0;
echo $is_enabled ? "ဖွင့်လှစ်" : "ရုပ်သိမ်းခြင်း";
?>
ရွေးချယ်မှုအားလုံး၏အခြေအနေကို binary strings များဖြင့်ကိုယ်စားပြုနိုင်သည်။ သူတို့ကိုဒ decimal မသို့ကူးပြောင်းပြီးနောက်၎င်းတို့ကိုချက်ချင်းမျက်နှာဖုံးများဖြင့်အလျင်အမြန်တရားစီရင်ခြင်းကိုအလျင်အမြန်တရားစီရင်ခြင်းကိုအလျင်အမြန်တရားစွဲဆိုနိုင်ပြီးအသုတ်ပြည်နယ်တရားသဖြင့်စီရင်ခြင်းအတွက်သင့်တော်သည်။
နမူနာကုဒ်:
<?php
// option ကို configuration string ကို,အရှည်ရွေးချယ်စရာအရေအတွက်ကိုကိုယ်စားပြုတယ်
$options = "11011"; // ညွှန်ပြ1、2、4、5ရွေးချယ်စရာများကိုဖွင့်ထားသည်
// ဒ decimal မလွှဲပါ
$decimal = bindec($options);
// detect လုပ်ဖို့ option ကိုမျက်နှာဖုံးကိုသတ်မှတ်ပါ,比如检测1 ။2和1 ။4个选项是否都ဖွင့်လှစ်
$mask = (1 << 1) | (1 << 3); // 1 ။2和1 ။4မြင်းဇက်ကြိုး
// 判断是否同时ဖွင့်လှစ်
if (($decimal & $mask) === $mask) {
echo "1 ။2和1 ။4个选项均已ဖွင့်လှစ်";
} else {
echo "1 ။2和1 ။4个选项未全部ဖွင့်လှစ်";
}
?>
ခွင့်ပြုချက်စီမံခန့်ခွဲမှု - သင်၌ခွင့်ပြုချက်အချို့ရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသူခွင့်ပြုချက်များကိုကိုယ်စားပြုရန် Binary Flags string ကိုသုံးပါ။
functional switch : ဒေတာဘေ့စ်လယ်ကွင်းများနှင့်ရှင်းလင်းသောယုတ္တိဗေဒကိုကယ်တင်ရန် function switches ကို configure လုပ်ပါ။
စွမ်းဆောင်ရည်အားသာချက်များ : မြင့်မားသောစွမ်းဆောင်ရည်လိုအပ်ချက်အတွက်သင့်လျော်သောစွမ်းဆောင်ရည်မြင့်မားသောတွက်ချက်မှုထိရောက်မှု။
Bindec () နှင့်ပေါင်းစပ်ရန် Biny strings များကိုခွဲခြမ်းစိတ်ဖြာရန်ကုဒ်သည်တိကျသောနှင့်နားလည်ရန်လွယ်ကူပြီးထိန်းသိမ်းရန်လွယ်ကူသည်။