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 နာကိုဤ "ကျိုးကြောင်းဆီလျော်" တွင်အတိအကျဝှက်ထားနိုင်သည်။
ရှုပ်ထွေးဆုံးသောအခြေအနေများအနက်မှတစ်ခုမှာ -
$var = 'false';
settype($var, 'bool'); // 结果ဟုတ်ကဲ့ true
တခြားဘာသာစကား (ဥပမာ JavaScript, Java) ကိုပြောင်းရွှေ့ခဲ့ကြသူများစွာ (ဥပမာ JavaScript, Java) ကိုပြောင်းရွှေ့ခံရခြင်းသည် "မှားယွင်းသော" ဟူသောစကားလုံးသည် boolean value false ည့်သည်များ နှင့်ကိုက်ညီ သင့် သည်။ ဒါကပုံမှန်ထောင်ချောက်တစ်ခုပါ။
အထူးသဖြင့်ပုံစံ input ကိုလုပ်ဆောင်တဲ့အခါ
$input = $_POST['subscribe']; // အသုံးပြုသူတင်သွင်းခဲ့ကြပေမည် "false"
settype($input, 'bool');
ဤအချက်သည် ဒေါ်လာ input ကို အမှန်တကယ် ပြောင်းလဲရန် အမှန်တကယ်ပြောင်းလဲလိမ့်မည်။ ၎င်းသည်ယုတ္တိဆိုင်ရာတရားစီရင်ခြင်းအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
အလွယ်တကူလျစ်လျူရှုထားသည့်အခြားအရာတစ်ခုမှာ array များနှင့်အရာဝတ်ထုများဖြစ်သည်။
$var = [];
settype($var, 'bool'); // false
$var = [1];
settype($var, 'bool'); // true
အချည်းနှီးသောခင်းကျင်းသည် မှားသည် , သို့သော် element တစ်ခုသာရှိလျှင်ပင် မှန် သည်။ ၎င်းသည်ဒေတာများကိုဖြတ်သန်းခြင်းသို့မဟုတ်အတည်ပြုသည့်အခါမှားယွင်းစွာမှားယွင်းစွာဖြစ်စေနိုင်သည်။
အလားတူပင်အရာဝတ်ထုတွင်ပစ္စည်းမရှိပါကပင်အရာဝတ်ထုတစ်ခုသည်အမြဲ မှန်ကန် သည်။
$var = new stdClass();
settype($var, 'bool'); // true
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 တန်ဖိုးများကိုရှင်းလင်းစွာမြေပုံဆွဲခြင်းစသည့်ကြိုးကြိုးများကဲ့သို့သောပိုမိုလုံခြုံစိတ်ချနိုင်သည်။
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 ကိုရည်ညွှန်းနိုင်သည်။