လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Settype () boolean တန်ဖိုးများကိုပြောင်းလဲသောအခါမှတ်စုများ

Settype () boolean တန်ဖိုးများကိုပြောင်းလဲသောအခါမှတ်စုများ

gitbox 2025-05-26

PHP တွင် SetTTYPE () သည် Situ ရှိ variable အမျိုးအစားကိုပြုပြင်နိုင်သောအလွန်အဆင်ပြေသောအမျိုးအစားပြောင်းလဲခြင်းလုပ်ငန်းဖြစ်သည်။ SetTTYPE () ကို Boolean အမျိုးအစား ( Bool ) သို့ပြောင်းလဲရန်အတွက်ကျွန်ုပ်တို့သည် SetTTYPE (BOOL) သို့ပြောင်းရန်အသုံးပြုသောအခါလျစ်လျူရှုရန်လွယ်ကူသောပြ problems နာအချို့ကိုကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။

ဤဆောင်းပါးသည် SetTTALPE ၏အပြုအမူကိုအာရုံစိုက်မည်။

အခြေခံအပြုအမူ

ပထမဥပမာကိုကြည့်ကြစို့။

 $var = 1;
settype($var, 'bool'); // ယခု $var ဟုတ်ကဲ့ true

၎င်းသည်အလိုလိုသိမှု - သုညမဟုတ်သောနံပါတ်များကို True နှင့် 0 င်ပြောင်းလဲခြင်းမရှိသေးပါ။ 0 သည် မှားယွင်းစွာ ပြောင်းလဲသွားသည်။ အလားတူ, ကြိုးမစည်း ခြင်း ,

 $var = 'hello';
settype($var, 'bool'); // true

$var = '';
settype($var, 'bool'); // false

ပထမတစ်ချက်မှာအရာအားလုံးအကျိုးသင့်အကြောင်းသင့်ရှိပုံရသော်လည်းပြ problem နာကိုဤ "ကျိုးကြောင်းဆီလျော်" တွင်အတိအကျဝှက်ထားနိုင်သည်။

လျစ်လျူရှုခြင်းမေးခွန်းတစ်ခု - string ကို "အတုအယောင်" ဟု ယူမှတ်သည်

ရှုပ်ထွေးဆုံးသောအခြေအနေများအနက်မှတစ်ခုမှာ -

 $var = 'false';
settype($var, 'bool'); // 结果ဟုတ်ကဲ့ true

တခြားဘာသာစကား (ဥပမာ JavaScript, Java) ကိုပြောင်းရွှေ့ခဲ့ကြသူများစွာ (ဥပမာ JavaScript, Java) ကိုပြောင်းရွှေ့ခံရခြင်းသည် "မှားယွင်းသော" ဟူသောစကားလုံးသည် boolean value false ည့်သည်များ နှင့်ကိုက်ညီ သင့် သည်။ ဒါကပုံမှန်ထောင်ချောက်တစ်ခုပါ။

အထူးသဖြင့်ပုံစံ input ကိုလုပ်ဆောင်တဲ့အခါ

 $input = $_POST['subscribe']; // အသုံးပြုသူတင်သွင်းခဲ့ကြပေမည် "false"
settype($input, 'bool');

ဤအချက်သည် ဒေါ်လာ input ကို အမှန်တကယ် ပြောင်းလဲရန် အမှန်တကယ်ပြောင်းလဲလိမ့်မည်။ ၎င်းသည်ယုတ္တိဆိုင်ရာတရားစီရင်ခြင်းအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။

jamed မေးခွန်းနှစ်ခု: Arrays သို့မဟုတ်အရာဝတ်ထုကူးပြောင်းခြင်း

အလွယ်တကူလျစ်လျူရှုထားသည့်အခြားအရာတစ်ခုမှာ array များနှင့်အရာဝတ်ထုများဖြစ်သည်။

 $var = [];
settype($var, 'bool'); // false

$var = [1];
settype($var, 'bool'); // true

အချည်းနှီးသောခင်းကျင်းသည် မှားသည် , သို့သော် element တစ်ခုသာရှိလျှင်ပင် မှန် သည်။ ၎င်းသည်ဒေတာများကိုဖြတ်သန်းခြင်းသို့မဟုတ်အတည်ပြုသည့်အခါမှားယွင်းစွာမှားယွင်းစွာဖြစ်စေနိုင်သည်။

အလားတူပင်အရာဝတ်ထုတွင်ပစ္စည်းမရှိပါကပင်အရာဝတ်ထုတစ်ခုသည်အမြဲ မှန်ကန် သည်။

 $var = new stdClass();
settype($var, 'bool'); // true

လျစ်လျူရှုခြင်းမေးခွန်းသုံးခု - NULL နှင့် undefined တန်ဖိုးများကိုကိုင်တွယ်

Variable သည် NULL , setterype () false သို့ပြောင်းရန်ပြောင်းလဲခြင်း, မျှော်လင့်ထားသည့်အတိုင်းဖြစ်သည်။

 $var = null;
settype($var, 'bool'); // false

သို့သော်လည်း , ဥပမာအားဖြင့်,

 if (isset($_GET['active'])) {
    $active = $_GET['active'];
    settype($active, 'bool');
}

အကယ်. $ _get သည် 0 0 0 '(i.e. string) သည်' 0 'ဖြစ်လျှင် ' 0 ' သည် ချည်းနှီးသောကြိုးဖြစ်သည်။ အတိအလင်းစေရန်မှန်ကန်သောနည်းလမ်း:

 $active = isset($_GET['active']) && $_GET['active'] === '1';

သို့မဟုတ်အခြေအနေအပေါ် အခြေခံ. Surext ကို အခြေခံ. Boolean တန်ဖိုးများကိုရှင်းလင်းစွာမြေပုံဆွဲခြင်းစသည့်ကြိုးကြိုးများကဲ့သို့သောပိုမိုလုံခြုံစိတ်ချနိုင်သည်။

impred မေးခွန်းလေးလေး: သွယ်ဝိုက်နှင့်ရှင်းလင်းပြတ်သားစွာ

SetTYPE ( $ var) ကိုရောနှောခြင်း ($ var) ကိုရောနှောခြင်းက semantics ကိုမှုန်ဝါးစေနိုင်သည်။ ဥပမာအားဖြင့်:

 $val = $_GET['debug'] ?? '';
settype($val, 'bool');

if ($val) {
    // Debug Mode ကိုဖွင့်ပါ
}

ဒီကုဒ်ကမျက်နှာပြင်ပေါ်မှာမှန်တယ်, ဒါပေမယ့်အဲဒါကိုထိန်းသိမ်းရန်နှင့်ဖတ်ရန်ခက်ခဲသည်။ ရှင်းလင်းပြတ်သားစွာ whitelist ကိုသုံးတာကပိုကောင်းတယ်။

 $debug = in_array($_GET['debug'] ?? '', ['1', 'true'], true);

၎င်းသည်ပိုမိုရှင်းလင်းသော, ထိန်းချုပ်နိုင်စွမ်းနှင့်ပိုမိုလုံခြုံသည်။

လုံခြုံသောအခြားနည်းလမ်းများ

Boolean Conversions နှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်အသုံးပြုသူများသို့မဟုတ် URL များထံမှအထူးအားသွင်းပါက settingtype () ကို ရှောင်ရှားရန်အကြံပြုသည်။ ပိုမိုရှင်းလင်းစွာရှင်းလင်းသောဥပဒေရေးရာယုတ္တိဗေဒကို အသုံးပြု. စဉ်းစားပါသို့မဟုတ်အသွင်ပြောင်းရေး function ကို encapsuating:

 function toBool($value): bool {
    $truthy = ['1', 1, true, 'true', 'on', 'yes'];
    return in_array(strtolower((string)$value), $truthy, true);
}

ထို့နောက်အသုံးပြုပါ

 $flag = toBool($_GET['flag'] ?? '');

ဤသည်ကမူလွင်ပြင်ဆိုင်ရာအနေဖြင့်လွဲမှားခြင်းကိုတားဆီးနိုင်ပြီး Code ၏ထိန်းသိမ်းမှုနှင့်ကြိုတင်ခန့်မှန်းနိုင်မှုကိုတိုးတက်စေသည်။

အကျဉ်းချုပ်

Settype () PHP တွင်ရိုးရှင်းသောပုံရသည်, သို့သော် Boolean တန်ဖိုးများကိုပြောင်းလဲသည့်အခါမမျှော်လင့်သောအပြုအမူများကိုဖြစ်ပေါ်စေသည်။ ဘုံမေးခွန်းများတွင်:

  • string ကို " အတုအယောင် " ကိုပြောင်းလဲသည်

  • အချည်းနှီးသော string နှင့် '0' အကြားအပြုအမူခြားနားချက်

  • array နှင့်အရာဝတ်ထုများ၏ default boolean တန်ဖိုးများသည်အလိုလိုသိခြင်းမဟုတ်ပါ

  • အသုံးပြုသူထည့်သွင်းမှုနှင့်ပူးပေါင်းသောအခါယုတ္တိရှိသောအားနည်းချက်များဖြစ်ပေါ်စေရန်လွယ်ကူသည်

ထို့ကြောင့် SetTTYPE () ကို Bolean Transformation အတွက်သတိထားရန်အထူးသဖြင့်ပြင်ပမှအချက်အလက်များကိုထုတ်ဖော်ပြောဆိုသောအခါ,

ဤအခြေအနေများအတွက်သတ်သတ်မှတ်မှတ်ကုဒ်ကိုသရုပ်ပြရန်သို့မဟုတ်စမ်းသပ်ကိရိယာတစ်ခုတည်ဆောက်ရန် https://gitbox.net/tools/phool/php-Bool-BoL-Test -betest ကိုရည်ညွှန်းနိုင်သည်။