လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> callback function ပြန်လာတန်ဖိုး၏ boleean အဓိပ္ပာယ်ကိုနားမလည်ပါ

callback function ပြန်လာတန်ဖိုး၏ boleean အဓိပ္ပာယ်ကိုနားမလည်ပါ

M66 2025-06-06

PHP တွင် array_filter () သည် calnback function ၏ရလဒ်ပေါ် မူတည်. element တစ်ခုအတွက် element များကို filter လုပ်ရန်အသုံးပြုသောအလွန်အသုံးများသော array function တစ်ခုဖြစ်သည်။ ၎င်း၏အသုံးပြုမှုသည်ရိုးရှင်းသည်ဟုထင်ရသော်လည်း developer များစွာသည်အထူးသဖြင့် callback လုပ်ဆောင်ချက်များကိုရေးသားသည့်အခါ၎င်းတို့ကိုပြန်လည်ထူထောင်ရေးတန်ဖိုး၏ "boolean value" ၏ "boolean ဆိုလို" ခြင်းကြောင့်ရှုပ်ထွေးနေသည်။

ဥပမာအားဖြင့်တစ်ယောက်ယောက်ကအောက်ပါကုဒ်ကိုရေးခဲ့တယ်။

 $input = [0, 1, 2, 3, 4, 5];

$result = array_filter($input, function($value) {
    return $value % 2; // ထူးဆန်းနံပါတ်များကိုစောင့်ရှောက်ရန်မျှော်လင့်ပါတယ်
});

print_r($result);

ရလဒ်သည် output ကို [1, 3, 5] သည်မျှော်လင့်ထားပြီးရလဒ်လည်းဖြစ်သည်။ သို့သော်သင်သည်ဤဥပမာကိုအနည်းငယ်ပြုပြင်မွမ်းမံပါကအလွယ်တကူရှုပ်ထွေးစေနိုင်သည်။

 $input = [0, 1, 2, 3, 4, 5];

$result = array_filter($input, function($value) {
    return $value % 2 == 0; // နံပါတ်များကိုပင်စောင့်ရှောက်ရန်မျှော်လင့်ပါတယ်
});

print_r($result);

လူအများစုကဤဒြပ်စင်များကို စစ်မှန်သော ပြန်လာသည့်အခါသိမ်းဆည်းထားလျှင် , ဒါကအမှန်ပဲ။ သို့သော်အဓိကသော့ချက်မှာ PHP သည် dynamically typed language ဖြစ်ပြီး, callback function မှပြန်လာသောတန်ဖိုးကို boolean value သို့ချလိမ့်မည်။

"စစ်မှန်တဲ့နှင့်မှားယွင်းသော" ကိုစီရင်ခြင်းအတွက်စံ

PHP ရှိဤတန်ဖိုးများကို မှားယွင်းစွာ ပြောင်းလဲခြင်းသို့ပြောင်းလဲခြင်းခံရသည်။

  • Boolean Value False

  • integer 0

  • floating အမှတ်အမျိုးအစား 0.0

  • အချည်းနှီးသော string '' သို့မဟုတ် '0' '

  • အချည်းနှီးသောခင်းကျင်း []

  • တရားစွာလဲှ

ဒါကြောင့်သင်အောက်ပါကုဒ်ကိုရေးတဲ့အခါ:

 $input = ['a', '', 'b', '0', 'c'];

$result = array_filter($input);

print_r($result);

output ကိုသင်တွေ့လိမ့်မည်။

 Array
(
    [0] => a
    [2] => b
    [4] => c
)

callback function ကိုမသတ်မှတ်ပါက array_filter () သည် boolean သပိတ်မှောက်မှုကိုအသုံးပြုသည်။ ဒါကြောင့်နှစ် ဦး စလုံးအချည်းနှီးသော strings 'နှင့်' 0 '' နှင့် '0' 'နှင့်' 0 ' filtered နေကြသည် - သူတို့က false မှပြောင်းလဲနေကြသည်။

ဤအချိန်တွင်လူအများစုက "ငါတန်ဖိုးရှိပြီ, ဘာကြောင့်ဒီကိုစစ်ထုတ်ပစ်တာလဲ"

အဆိုပါ callback function ရဲ့ပြန်လာတန်ဖိုး၏ထောင်ချောက်

developer များသည် boolean အမျိုးအစားများကိုပြန်ပို့ရန် collbacks များကိုအသုံးပြုသောအခါနောက်ထပ်နားလည်မှုလွဲမှားခြင်းများကိုပြုလုပ်လေ့ရှိသည်။

 $input = [1, 2, 3, 4, 5, 6];

$result = array_filter($input, function($value) {
    return $value & 1; // bitwise နှင့်ထူးဆန်းနံပါတ်များကိုစစ်ကြောစီရင်ပါ
});

print_r($result);

ဤကုဒ်သည်မှန်ကန်သော်လည်း၎င်းသည်အစပြုသူများကိုအရူးမောင်းနိုင်သည်။ $ တန်ဖိုးနှင့် 1 ၏ရလဒ်သည် 0 သို့မဟုတ် 1 ဖြစ်သည်။ $ တန်ဖိုး သည်ပင်နံပါတ်တစ်ခု၌ပင်နံပါတ်တစ်ခု၌ပင်ရလဒ်သည် 0 င် ဖြစ်သည် ။ ဤအချိန်တွင် 1 သို့မဟုတ် 0 သည် 0 င်ခွင့်ရရှိသောတန်ဖိုးသည်ဒြပ်စင်များကိုဆက်လက်ထိန်းသိမ်းထားသည်မဟုတ်ဘဲဤတန်ဖိုးများ၏စွမ်းဆောင်ရည်ကို Boolean ပတ်ဝန်းကျင်တွင်ရှိသည်။

လျစ်လျူရှုရန်လွယ်ကူသောအသေးစိတ် - အဓိကအမည်များကိုထိန်းသိမ်းထားသည်

လူအများသတိမပြုမိသည့်နောက်တစ်ခုမှာ array_filter () မူရင်းခင်းကျင်းမှု၏အဓိကအကြောင်းကိုဆက်လက်ထိန်းသိမ်းထားသည်။ သင်အညွှန်းကိုပြန်လည်တည်ဆောက်လိုပါက, သင် array_values ​​() ကို သုံးနိုင်သည်။

 $result = array_values(array_filter($input, function($value) {
    return $value > 2;
}));

လက်တွေ့အမှု - URL တွင်သတ်မှတ်ထားသောသတ်မှတ်ချက်များမရှိသည့်အခြေအနေကိုစစ်ဆေးပါ

ဥပမာအားဖြင့်, သင်သည် URLs အစုတခုမှ တိုကင် parameters တွေကိုမပိတ်ဘဲ link များကို filter လုပ်လိုသည်။

 $urls = [
    'https://m66.net/page1?token=abc',
    'https://m66.net/page2',
    'https://m66.net/page3?token=xyz',
];

$filtered = array_filter($urls, function($url) {
    $parts = parse_url($url);
    if (!isset($parts['query'])) {
        return false;
    }
    parse_str($parts['query'], $query);
    return isset($query['token']);
});

print_r($filtered);

ဤကုဒ်၏ callback function သည်အမျိုးအစားပြောင်းလဲခြင်းဖြင့်ရှုပ်ထွေးမှုမရှိစေရန် boolean value ( true or false ) ကိုအတိအလင်းပြန်ပို့သည်။

အကျဉ်းချုပ်

လူအများစုက array_filter () callback function ကိုပြန်ပို့ခြင်း၏ "Boolean အဓိပ္ပာယ်" ကိုနားမလည်ကြပါ။ နောက်ဆုံးခွဲခြမ်းစိတ်ဖြာခြင်းတွင်၎င်းတို့သည် PHP ရှိ "စစ်မှန်သောနှင့်မှားယွင်းသောတန်ဖိုးများ" ကိုနက်ရှိုင်းစွာနားလည်ခြင်းမရှိပါ။ ယုံကြည်စိတ်ချရသော array_filter () callback function ကိုရေးရန်,

  • callback function ကို၏ပြန်လာတန်ဖိုးကို boolean value သို့ကူးပြောင်းသည်။

  • အမျိုးအစားတစ်ခုသို့မဟုတ် string ကဲ့သို့သောနံပါတ် (string) ကဲ့သို့သော "တန်ဖိုး" ရှိသည်ဖြစ်စေ မူတည်. မမူတည်ပါ

  • သင်၏ရည်ရွယ်ချက်သည်ရှင်းလင်းပြတ်သားသောယုတ္တိဆိုင်ရာဆုံးဖြတ်ချက်ချပါက Boolean Errame ကိုအတိအလင်းရေးပါ။

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