ဤအပြုအမူကိုနားလည်ရန် PHP ၏အမျိုးအစားစနစ်ကို ဦး စွာနားလည်ရန်လိုအပ်သည်။ PHP သည်များသောအားဖြင့်အများအားဖြင့်အလိုအလျောက်ပြောင်းလဲစေသောစကားလုံးများကိုအားနည်းနေသောဘာသာစကားဖြစ်သည်။ သို့သော် PHP သည်ရှင်းလင်းသောအချက်အလက်အမျိုးအစားများကိုပြည်တွင်း၌ဆက်လက်ထိန်းသိမ်းထားဆဲဖြစ်သည်။
ကိန်း
float အမျိုးအစား (နှစ်ဆ / float)
ကြိုး
Booleean
အခင်းအကျင်း
ကန့်ကွက်
ပစ္စည်းအင်းအား
တရားစွာလဲှ
ဆိုလိုသည်မှာ 1 နှင့် 1.0 သည်အရေအတွက်နှင့်ညီမျှလျှင်ပင်၎င်းတို့သည်အမျိုးအစားများနှင့်ကွဲပြားခြားနားနေဆဲဖြစ်သည်။
is_Double () သည် PHP တွင် built-in function တစ်ခုဖြစ်ပြီး variable တစ်ခုသည် floarie point type သို့မဟုတ်ဖြစ်သည်။ အကောင်အထည်ဖော်မှုယုတ္တိဗေဒသည်အလွန်ရိုးရှင်းပြီးမှတ်ဉာဏ်တွင် variable တွင် variable ၏အမျိုးအစားအမှတ်အသားသည် "floating point" ဖြစ်သည်ကိုစစ်ဆေးခြင်းနှင့်ညီမျှသည်။
ဥပမာတစ်ခုကိုကြည့်ရအောင်။
$a = 1;
$b = 1.0;
var_dump(is_double($a)); // bool(false)
var_dump(is_double($b)); // bool(true)
အထက်ဖော်ပြပါကုဒ်များတွင် $ A $ a သည် PHP ရှိ "Integer" ဟုတိတိကျကျသတ်မှတ်ထားသည့်ကိန်းတစ်ခုဖြစ်ပြီး ဒေါ်လာခ သည် flowing point နံပါတ်ဖြစ်သည် ။
ဤအချက်ကဆောင်းပါးခေါင်းစဉ်တွင်ပြ problem နာကိုရှင်းပြသည် - is_Doubble (1) သည် မှားယွင်းသော ပြန်လာသည် ။
floating point နံပါတ်တစ်ခုနှင့်တူသော string တစ်ခုတွင်ဖြတ်သန်းသွားသောအခါ မည်သို့ ပြုမူမည်ကိုသင်စဉ်းစားမိနိုင်သည်။
var_dump(is_double('1.0')); // bool(false)
ဤရလဒ်သည် ထပ်မံ. is_Double () သည် သွယ်ဝိုက်သောပြောင်းလဲခြင်းကိုမလုပ်ဆောင်နိုင်ကြောင်းပြသသည်။ string '1.0' ကို floating point နံပါတ်အဖြစ်အလိုအလျောက်အနက်ဖွင့်ထားခြင်းမရှိပါ။ is_double () သည် variable ၏အတွင်းပိုင်းအမျိုးအစားသည် float ပြီးမှသာစစ်မှန်သောပြန်လာလိမ့်မည်။
သင်၏ရည်ရွယ်ချက်သည်တန်ဖိုးကိုရေပေါ်အမှတ်အသားတစ်ခုအဖြစ်အဓိပ္ပာယ်ကောက်ယူနိုင်မည်လားဆိုသည်ကိုဆုံးဖြတ်ရန်ဖြစ်သည် ။ ဥပမာအားဖြင့်:
function is_numeric_float($value) {
return is_numeric($value) && (strpos((string)$value, '.') !== false);
}
var_dump(is_numeric_float('1.0')); // bool(true)
တနည်းအားဖြင့်သင်သည် filter_var () ကို ပိုမိုပြောင်းလွယ်ပြင်လွယ်စစ်ဆေးခြင်းအတွက်အသုံးပြုနိုင်သည်။
var_dump(filter_var('1.0', FILTER_VALIDATE_FLOAT)); // float(1)
ဤနည်းလမ်း သည် အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်အသုံးပြုသူ input သို့မဟုတ် network တောင်းဆိုမှုများတွင်အချက်အလက်များကိုလုပ်ဆောင်သည့်အခါ,
အချို့သောဒေတာစိစစ်မှုအခြေအနေများတွင် developer များသည် "floating point nount nount new new new new new new news new ား) အားလုံးကိုအကဲဖြတ်နိုင်လိမ့်မည်။ ဥပမာအားဖြင့်, သင်သည်ရှေ့ဆုံးမှ JSON တောင်းဆိုချက်ကိုလက်ခံရရှိပါကကွင်းတန်ဖိုးသည် "1.0" ဖြစ်သည်။ အကယ်. သင်သည် iS_Double () ကို တိုက်ရိုက်အတည်ပြုရန်အသုံးပြုပါကအချက်အလက်ပုံစံသည်မမှန်ကန်ကြောင်းမှားယွင်းစွာပြုလုပ်လိမ့်မည်။
မှန်ကန်သောနည်းလမ်းမှာ is_numeric () ကို format scressification ကိုပေါင်းစပ်ခြင်း,
$data = json_decode(file_get_contents('https://gitbox.net/data.json'), true);
$price = (float)$data['price'];
if (is_double($price)) {
// floating အမှတ်နံပါတ်များကိုလုံခြုံစွာအသုံးပြုခြင်း
}