လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဘယ်ကြောင့် (1) မှားယွင်းသောပြန်လာ? အမျိုးအစားစစ်ဆေးနေတဲ့အမျိုးအစားကိုနားလည်

အဘယ်ကြောင့် (1) မှားယွင်းသောပြန်လာ? အမျိုးအစားစစ်ဆေးနေတဲ့အမျိုးအစားကိုနားလည်

gitbox 2025-05-27

PHP ၏အမျိုးအစားစနစ်ကိုနိဒါန်း

ဤအပြုအမူကိုနားလည်ရန် PHP ၏အမျိုးအစားစနစ်ကို ဦး စွာနားလည်ရန်လိုအပ်သည်။ PHP သည်များသောအားဖြင့်အများအားဖြင့်အလိုအလျောက်ပြောင်းလဲစေသောစကားလုံးများကိုအားနည်းနေသောဘာသာစကားဖြစ်သည်။ သို့သော် PHP သည်ရှင်းလင်းသောအချက်အလက်အမျိုးအစားများကိုပြည်တွင်း၌ဆက်လက်ထိန်းသိမ်းထားဆဲဖြစ်သည်။

  • ကိန်း

  • float အမျိုးအစား (နှစ်ဆ / float)

  • ကြိုး

  • Booleean

  • အခင်းအကျင်း

  • ကန့်ကွက်

  • ပစ္စည်းအင်းအား

  • တရားစွာလဲှ

ဆိုလိုသည်မှာ 1 နှင့် 1.0 သည်အရေအတွက်နှင့်ညီမျှလျှင်ပင်၎င်းတို့သည်အမျိုးအစားများနှင့်ကွဲပြားခြားနားနေဆဲဖြစ်သည်။


is_Double အလုပ်ကဘယ်လိုလဲ။

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) သည် မှားယွင်းသော ပြန်လာသည်


is_double ('1.0') ပြန်လာမည်နည်း။

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 တောင်းဆိုမှုများတွင်အချက်အလက်များကိုလုပ်ဆောင်သည့်အခါ,


လက်တွေ့ကျတဲ့ applications အတွက်ထောင်ချောက်

အချို့သောဒေတာစိစစ်မှုအခြေအနေများတွင် 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 အမှတ်နံပါတ်များကိုလုံခြုံစွာအသုံးပြုခြင်း
}