ကိန်းဂဏန်းတွက်ချက်မှုများနှင့်ဒေတာများကိုစစ်ဆေးခြင်းပြုလုပ်ရာတွင် PHP သည် floating-point နံပါတ်များ ကို ရှာဖွေရန်အချို့သောလုပ်ဆောင်ချက်များကိုပေးသည် ။ ဤလုပ်ဆောင်ချက်နှစ်ခုသည်တန်ဖိုးတစ်ခုသည်အကန့်အသတ်ရှိသောတန်ဖိုးတစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်တန်ဖိုးများအမှားအယွင်းများသို့မဟုတ်လုပ်ငန်းလည်ပတ်မှုခြွင်းချက်များကိုရှောင်ရှားရန်တန်ဖိုးများ၏တရားဝင်မှုကိုသေချာစေရန်သူတို့ကိုတစ်ချိန်တည်းတွင်အသုံးပြုရန်လိုအပ်သည်။
is_finite (float $ num): Bool
$ num သည် အ က န့် အသတ်ရှိသောတန်ဖိုးကိုဟုတ်ကဲ့, ၎င်းကိုအပြုသဘောနှင့်အပျက်သဘောဆောင်သောအသင်္ချေ (inf and -inf) ကိုဖယ်ထုတ်ရန်အသုံးပြုနိုင်သည်။
is_nan (float $ num): Bool
$ num num (နံပါတ်မဟုတ်) သည် rue သို့ပြန်လာပါ။ များသောအားဖြင့်တရားမ 0 င်သင်္ချာဆိုင်ရာစစ်ဆင်ရေးများ၏ရလဒ်ဖြစ်သည်။
ပြင်ပဒေတာ (အသုံးပြုသူထည့်သွင်းမှု, ဖိုင်ဖတ်ခြင်းသို့မဟုတ် API ပြန်လာ) ကိုလုပ်ဆောင်သောအခါအချက်အလက်သည်တရားဝင် floating point နံပါတ်ဖြစ်ရမည်ဟုကြိုတင်မယူနိုင်ပါ။ ပုံမှန်မြင်ကွင်းတစ်ခုသည်ကွဲပြားခြင်း, စတုရန်းအမြစ်, logarithm စသည်ဖြင့်သင်္ချာဆိုင်ရာလုပ်ငန်းများလုပ်ဆောင်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:
$result = log(0); // ပြန်လာ -INF
သို့မဟုတ်:
$result = acos(2); // ဒိုမိန်းထဲက,ပြန်လာ NAN
is_finite () တစ်ခုတည်းကိုအသုံးပြုခြင်းသည်နန်တန်ဖိုးများကိုဖယ်ထုတ်ခြင်းမပြုလုပ်ပါ။ ထို့ကြောင့်တန်ဖိုးနှစ်ခုသည် "သာမန်" တန်ဖိုးတစ်ခုရှိမရှိပိုမိုနားလည်သဘောပေါက်မှုများကိုပိုမိုနားလည်သဘောပေါက်ရန်လုပ်ဆောင်မှုနှစ်ခုကိုပေါင်းစပ်ရမည်။
တန်ဖိုးသည် "ပုံမှန်" ဟုတ်မဟုတ်ကိုပိုမိုထိရောက်စွာဆုံးဖြတ်ရန်, အောက်တွင်ဖော်ပြထားသည့်အတိုင်းအထွေထွေ function ကိုရေးနိုင်သည်။
function is_valid_number($value) {
return is_finite($value) && !is_nan($value);
}
ဒီ function ကိုသုံးပြီး၎င်းကိုအမျိုးမျိုးသောဒေတာအပြောင်းအလဲအတွက်ကျွန်ုပ်တို့အလွယ်တကူခေါ်ဆိုနိုင်သည်။
$data = [
log(0),
3.1415,
acos(2),
1.0e309
];
foreach ($data as $value) {
if (is_valid_number($value)) {
echo "သက်တမ်းရှိတန်ဖိုး: $value\n";
} else {
echo "မမှန်ကန်သောတန်ဖိုး: $value\n";
}
}
output ကိုဖြစ်လိမ့်မည်:
မမှန်ကန်သောတန်ဖိုး: -INF
သက်တမ်းရှိတန်ဖိုး: 3.1415
မမှန်ကန်သောတန်ဖိုး: NAN
မမှန်ကန်သောတန်ဖိုး: INF
ဥပမာအားဖြင့်ပိုက်လိုင်းပြုပြင်ခြင်းတွင်ပိုက်လိုင်းခွဲခြမ်းစိတ်ဖြာခြင်းမှဂဏန်း> https: /gitbox.net/api/api/psi/data </ code> မှနံပါတ်ခင်းထားသည်။ မဆိုသင်္ချာစစ်ဆင်ရေးများမပြုလုပ်မီ is_valid_number_number () သည်မမျှော်လင့်သော Nan သို့မဟုတ်အဆုံးမဲ့ညစ်ညမ်းမှုကိုရှောင်ရှားရန်အချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ရန်။
$json = file_get_contents('https://gitbox.net/api/data');
$data = json_decode($json, true);
$cleanData = array_filter($data, 'is_valid_number');
$average = array_sum($cleanData) / count($cleanData);
echo "ပျမ်းမျှတန်ဖိုး: $average";
၎င်းသည်ကုဒ်ကိုသန့်ရှင်းရေးလုပ်ရုံသာမကယုတ္တိဆိုင်ရာအားနည်းချက်များကိုလည်းလျော့နည်းစေသည်။
is_finite () နှင့် is_nan () ပေါင်းစပ်အသုံးပြုခြင်း () ပေါင်းစပ်မှုတွင်ကိန်းဂဏန်းတန်ဖိုးများ၏တရားဝင်မှုကိုအတည်ပြုရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းကိုအထွေထွေလုပ်ဆောင်ချက်တစ်ခုအနေဖြင့်၎င်းကိုထည့်သွင်းပြီးထည့်သွင်းစစ်ဆေးခြင်း, ဒေတာ api ည့်ခံခြင်း, အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤခုခံကာကွယ်သည့်ပရိုဂရမ်နည်းသောနည်းစနစ်သည်ခက်ခဲသောရှာဖွေတွေ့ရှိရန်ခက်ခဲသောနယ်နိမိတ်အမှားအယွင်းများကိုမကြာခဏရှောင်တတ်သည်။