လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Strings ကိုဆုံးဖြတ်ရန် IS_INT ကိုအသုံးပြုသောအခါကျွန်ုပ်သည်အဘယ်ကြောင့်အမှားများပြုလုပ်လေ့ရှိသနည်း။ IS_INT အတွက်ထောင်ချောက်အမျိုးအစားများကဘာတွေလဲ။

Strings ကိုဆုံးဖြတ်ရန် IS_INT ကိုအသုံးပြုသောအခါကျွန်ုပ်သည်အဘယ်ကြောင့်အမှားများပြုလုပ်လေ့ရှိသနည်း။ IS_INT အတွက်ထောင်ချောက်အမျိုးအစားများကဘာတွေလဲ။

gitbox 2025-06-15

1 ။ is_int () function ကို၏အခြေခံအလုပ်လုပ်နိယာမ

is_int () function ကို function ကို variable တစ်ခုသည်ကိန်းဂဏန်းအမျိုးအစားတစ်ခုရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။ variable တစ်ခုကိန်းတစ်ခုဖြစ်ပါက စစ်မှန်ပါ PHP တွင်ကိန်းဂဏန်းများသည် 42 သို့မဟုတ် -10 ကဲ့သို့သောအပိုင်းအစများမရှိသောကိန်းဂဏန်းများမရှိပါ။

 var_dump(is_int(42)); // true
var_dump(is_int('42')); // false
var_dump(is_int(42.0)); // false

အပေါ်ကဥပမာအားဖြင့် IS_INT () သည် ကောင်းမွန်စွာအလုပ်လုပ်သည်, နံပါတ် 42 ကိုကိန်းဂဏန်းတစ်ခုအဖြစ်အသိအမှတ်ပြုခံရပြီး string 42 နှင့် floating point နံပါတ် 42.0 ကိုကိန်းဂဏန်းများအနေဖြင့်ထည့်သွင်းစဉ်းစားသည်။

2 ။ is_int သုံး. ကြိုးကိုစီရင်သည့်အခါသာမန်အမှားများ

PHP တွင်ကျွန်ုပ်တို့သည်နံပါတ်များ ( 42 '' ကဲ့သို့သော '42' ) အဖြစ်မကြာခဏကြုံတွေ့ရပြီး input လုပ်သားများပါ 0 င်သည်။ ဤအချိန်တွင် is_int () ကို ဆုံးဖြတ်ရန် string ကိုဆုံးဖြတ်ရန်မှာအမှားတစ်ခုဖြစ်ပေါ်စေလိမ့်မည်

 var_dump(is_int('42')); // false
var_dump(is_int('0'));  // false
var_dump(is_int('123abc')); // false

'42' သည် ကိန်းဂဏန်းတစ်ခုနှင့်တူလျှင်ပင်၎င်းသည်အမှန်တကယ် string တစ်ခုဖြစ်ပြီး ၎င်းသည် မှားယွင်းသော ပြန်လာသည်။

3 ။ string ကိုနှင့်နံပါတ်ပြောင်းလဲခြင်းနှင့်ပတ်သက်။ ပြနာများ

PHP သည်အချို့သောအမျိုးအစားများကိုအခြားအမျိုးအစားများသို့အလိုအလျောက်ပြောင်းလဲလိမ့်မည်။ ဥပမာအားဖြင့်, သင်သည်ဂဏန်းကြိုးကြိုးတစ်ခုပေါ်တွင်ဂဏန်းသင်္ချာလုပ်ငန်းများကိုလုပ်ဆောင်သောအခါ PHP သည်၎င်းကိုကိန်းတစ်ခုသို့ပြောင်းလဲပေးသည်။ သို့သော်၎င်းသည် string ကိုယ်နှိုက်သည်ကိန်းဂဏန်းအမျိုးအစားတစ်ခုဖြစ်သည်ဟုမဆိုလိုပါ။

 $var = '42';
echo $var + 1;  // 43,အလိုအလျောက်ကိန်းနှင့်တွက်ချက်ခြင်းနှင့်တွက်ချက်

သို့သော် အကယ်. သင်က၎င်းကိုစစ်ဆေးရန် IS_INT () ကို အသုံးပြုပါ က FREART သည်အလွန်တန်ဖိုးများကိုစစ်ဆေးသည်။

4 ။ is_int ၏ထောင်ချောက်ကိုရိုက်ထည့်ပါ () - ဂဏန်း string သည်အမျိုးအစားနှင့်မကိုက်ညီပါ

နောက်ထပ်ဘုံထောင်ချောက်တစ်ခုမှာနံပါတ်များပါ 0 င်သည့်ကြိုးများကိုထည့်သွင်းရန်ဖြစ်သည်။ ဥပမာအားဖြင့်, '42' နှင့် '42' (42) (နေရာများနှင့်ကြိုးများ) မဟုတ်ဘဲကိန်းဂဏန်းများဖြစ်သည်။

 var_dump(is_int('42'));  // false
var_dump(is_int(' 42 ')); // false

အကယ်. '42' သည်ဂဏန်းတစ်ခုဖြစ်သော string တစ်ခုဖြစ်သော်လည်း၎င်းသည်ကိန်းဂဏန်းအမျိုးအစားမဟုတ်ဘဲ string type တစ်ခုဖြစ်သည်။ ဒီမတိုက်ဆိုင်မှုသည်အစီအစဉ်တွင်ယုတ္တိအမှားများဖြစ်ပေါ်စေနိုင်သည်။

5 ။ is_numeric () အခြားနည်းလမ်းအဖြစ်

အကယ်. သင်၏ပန်းတိုင်သည် string သည်နံပါတ်တစ်ခုကိုကိုယ်စားပြုပါက၎င်းသည်ကိန်းဂဏန်းတစ်ခုဟုတ်မဟုတ် စစ်ဆေးရုံ မျှသာမဟုတ်ဘဲ check လုပ်ခြင်းထက်စစ်ဆေးရန်ဖြစ်သည်။ is_numeric () variable ကိုကိန်းဂဏန်းတစ်ခုသို့မဟုတ်ဂဏန်းကြိုး string ကိုဖြစ်လျှင် ပြန်လည်ထူထောင်

 var_dump(is_numeric('42'));  // true
var_dump(is_numeric('42.5')); // true
var_dump(is_numeric('0'));    // true
var_dump(is_numeric('abc'));  // false

is_numeric () ကို အသုံးပြုခြင်းအားဖြင့် is_ints () ကန့်သတ်ချက်ကိုသင်ရှောင်ရှားနိုင်ပြီး,

6 ။ is_int ၏ပြ problem နာကိုဖြေရှင်းပါ။

string တစ်ခုသည် integer တစ်ခုသို့ပြောင်းလဲခြင်းကိုဘေးကင်းစွာပြောင်းလဲနိုင်မလားဟုသင်အမှန်တကယ်ပြောရန်လိုအပ်ပါက, string ကိုကိန်းဂဏန်းများကိုပြောင်းလဲစေမည့်သို့မဟုတ်ပုံမှန်အသုံးအနှုန်းများနှင့်ပေါင်းစပ်သည့် တင်းကျပ်သော () function ကိုအသုံးပြုရန်စဉ်းစားပါ။

 $var = '42';
if (intval($var) == $var) {
    echo "$var ကိန်းတစ်ခုထဲသို့ပြောင်းလဲနိုင်သော string ကိုဖြစ်ပါတယ်";
} else {
    echo "$var မမှန်ကန်သောကိန်း";
}

သို့မဟုတ်:

 $var = '42';
if (preg_match('/^\d+$/', $var)) {
    echo "$var နံပါတ်များတစ်ခုလုံး string ကိုဖြစ်ပါတယ်";
} else {
    echo "$var 不နံပါတ်များတစ်ခုလုံး string ကိုဖြစ်ပါတယ်";
}

ဤနည်းလမ်းသည်ဂဏန်းကြိုးများကိုကိုင်တွယ်ရန် is_int () ကို တိုက်ရိုက်မှီခိုမှုကိုရှောင်ရှားနိုင်သည်။