PHP ဘာသာစကားတွင်မှိုကောက်ယူခြင်း (Modulo ဌာနခွဲ) လုပ်ဆောင်မှုများပြုလုပ်ရာတွင်ရလဒ်များအရရလဒ်များသည်အစပြုသူများကိုရှုပ်ထွေးစေလိမ့်မည်။ ဥပမာအားဖြင့် 8% -3 ဖျော်ဖြေတဲ့အခါမှာရလဒ်ကတော့တကယ်တော့ 0 တစ်ချက်မှာတကယ်တော့ 0 တစ်ချက်မှာလစာနဲ့သင်္ချာဘာသာရပ်နဲ့ဆန့်ကျင်နေပုံရတယ်, ဒီတော့ PHP ကဘာကြောင့် 0 င်လာတာလဲ။
နံပါတ်နှစ်ခုခွဲဝေပြီးနောက် Modular operator ( % ) သည်ကျန်ရှိသောပြန်လာရန်အသုံးပြုသည်။ တစ်စိတ်တစ်ပိုင်းအရ,
<span class="fun">A% B = A - B * ကြမ်းပြင် (A / B)</span>
PHP တွင် Moduo စစ်ဆင်ရေး၏ရလဒ်သင်္ကေတသည် Modulo (ပထမဆုံး operand) နှင့်အမြဲတသမတ်တည်းဖြစ်ကြောင်း သတိပြုသင့်သည်။ ၎င်းသည် Python သို့မဟုတ် Java ကဲ့သို့သောအခြားဘာသာစကားများဖြင့်အပြုအမူနှင့်ကွဲပြားနိုင်သည်။
ဥပမာအားဖြင့်:
echo 8 % 3; // ထုတ်လုပ်ခြင်း 2
echo 8 % -3; // ထုတ်လုပ်ခြင်း 2
echo -8 % 3; // ထုတ်လုပ်ခြင်း -2
echo -8 % -3; // ထုတ်လုပ်ခြင်း -2
Divisor (ဒုတိယ operand) သည်အပြုသဘောဖြစ်စေ, အပျက်သဘောဆောင်သောဖြစ်စေ, အကယ်. modulus သည်အပျက်သဘောဖြစ်ပါကရလဒ်မှာအနှုတ်လက်ခဏာဖြစ်သည်။
PHP မှကိန်းဂဏန်းများသည်လက်မှတ်ရေးထိုးထားသောကိန်းဂဏန်းများကိုအသုံးပြုသည်။ ၎င်း၏အခြေခံကိုယ်စားပြုမှုသည်များသောအားဖြင့်နှစ်ခုကိုဖြည့်စွက်ခြင်းပုံစံဖြင့်ဖြစ်သည်။
ဥပမာအားဖြင့်:
8 -> Binary ကိုယ်စားပြုမှု:00000000 00000000 00000000 00001000
-3 -> Binary ကိုယ်စားပြုမှု:11111111 11111111 11111111 11111101
8% -3 ကွပ်မျက်ခံရသောအခါ PHP သည်အထက်တွင်ဖော်ပြထားသောဖော်ပြခဲ့သည့်ပုံသေနည်းကိုအသုံးပြုလိမ့်မည်။
8 % -3 = 8 - (-3) * floor(8 / -3)
= 8 - (-3) * (-3)
= 8 - 9
= -1
သို့သော်အံ့သွစရာကောင်းလောက်အောင် PHP သည်ဤသင်္ချာရလဒ် -1 ကိုမပြန်သော်လည်း 2 ။ ဘာဖြစ်လို့လဲဆိုတော့ PHP အကောင်အထည်ဖော်မှုသည် modulus စစ်ဆင်ရေးကိုပြုပြင်ပြောင်းလဲမှုကိုပြုပြင်ပြောင်းလဲခြင်းကြောင့်ကျန်ရှိသောနံပါတ်သင်္ကေတများသည် modulus နှင့်ကိုက်ညီသည်။
ဤအပိုင်းသည်တကယ့်ရှုပ်ထွေးသောအမှတ်ဖြစ်သည်။ အချို့သော PHP ဗားရှင်းများတွင်သို့မဟုတ်အချို့သောအခြေအနေများတွင် 8% -3 == 0 တွင်ရလဒ်ဖြစ်ကောင်းဖြစ်နိုင်သည်။
တကယ်တော့ဒါကများသောအားဖြင့်ပြည်တွင်းအမျိုးအစားပြောင်းလဲမှု, ပလက်ဖောင်းတိကျတဲ့အပြုအမူ, ပုံမှန်အခြေအနေများတွင် 8% -3 မှ 8% -3 လုပ်ခြင်းသည် 0 အစား 2 ကို ပြန်ပို့သင့်ကြောင်းထောက်ပြသင့်သည်။
If you see 8% -3 == 0 in some environments, it is recommended to confirm the PHP version, platform architecture, and whether there is implicit type conversion or other contextual interference.
PHP ရှိ Modulo စစ်ဆင်ရေးဆိုင်ရာအသေးစိတ်အချက်အလက်များကိုနားလည်ခြင်းသည် Code ကိုပိုမိုကျိုးကြောင်းဆီလျော်စွာရေးရန်ကူညီလိမ့်မည်။ ဥပမာအားဖြင့်, သင့်တွင်အပြုသဘောနှင့်အပျက်သဘောဆောင်သော modulo နှင့်ဆက်ဆံရာတွင်အထူးလိုအပ်ချက်များရှိပါကသင်ဟာပုံဆောင်သဘောအရကိုက်ညီမှုရှိစေရန်ထုံးစံအတိုင်းလုပ်ဆောင်ချက်များကိုသုံးနိုင်သည်။
function mod($a, $b) {
return ($b < 0 ? -1 : 1) * ($a % abs($b));
}
ဤနည်းအားဖြင့်သင်သည် PHP ဗားရှင်းများကြောင့်ဖြစ်ပေါ်လာသောပလက်ဖောင်းကွဲပြားခြားနားမှုများသို့မဟုတ်ရှေ့နောက်မညီမှုများမှရှောင်ရှားနိုင်သည့်အပြုသဘောနှင့်အပျက်သဘောလက္ခဏာများကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်နိုင်သည်။
PHP တွင် 8% -3 ပြန်လာ 0 ၏ဖြစ်စဉ်သည် PHP ၏ Modulo စစ်ဆင်ရေးနည်းဥပဒေများကိုနက်နက်ရှိုင်းရှိုင်းနားလည်သဘောပေါက်နေပုံရသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် developer များသည်တိကျသောအခြေအနေများအရ Modulo လုပ်ငန်းများကိုဂရုတစိုက်အသုံးပြုသင့်ပြီးကျိုးကြောင်းဆီလျော်သောအမှားများကိုရှောင်ရှားရန်လိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ခြင်းနှင့်ကြိုတင်ခန့်မှန်းချက်များကိုစဉ်းစားသင့်သည်။