လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> is_a () ကိုအသုံးပြုနည်း () အရာဝတ်ထုသည်အတန်းမျိုးစုံမှမည်သည့်အရာနှင့်မဆိုဆုံးဖြတ်ရန်လား။ အဆိုပါထုပ်ပိုးနည်းလမ်း၏အသေးစိတ်ရှင်းပြချက်

is_a () ကိုအသုံးပြုနည်း () အရာဝတ်ထုသည်အတန်းမျိုးစုံမှမည်သည့်အရာနှင့်မဆိုဆုံးဖြတ်ရန်လား။ အဆိုပါထုပ်ပိုးနည်းလမ်း၏အသေးစိတ်ရှင်းပြချက်

M66 2025-06-28

1 ။ is_a () function ကို၏ရိုးရှင်းသောပြန်လည်သုံးသပ်

is_a (အရာဝတ်ထု $ အရာဝတ်ထု, string_ $ class_name, bool $ Allow_string = false: false

  • Detect လုပ်ရန် $ အရာဝတ်ထု အရာဝတ်ထု

  • $ class_name အတန်းအစားအမည် string ကို

  • အရာဝတ်ထုသည်အတန်းအစားသို့မဟုတ်၎င်း၏ subclass မှပိုင်ဆိုင်ပါက စစ်မှန် ပါက အယူမှား ပြန်လာပါ

ဥပမာ -

 class Animal {}
class Dog extends Animal {}

$dog = new Dog();

var_dump(is_a($dog, 'Dog'));      // true
var_dump(is_a($dog, 'Animal'));   // true,အကေြာင်းမှာ Dog အမေှဆက်ခံ Animal
var_dump(is_a($dog, 'Cat'));      // false

2 ။ Multi-Category ဆုံးဖြတ်ချက်များအတွက်လိုအပ်ချက်များ

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

 if (is_a($obj, 'Dog') || is_a($obj, 'Cat') || is_a($obj, 'Bird')) {
    // အရာဝတ်ထုသည်ဤသုံးခုအနက်မှတစ်ခုနှင့်သက်ဆိုင်သည်
}

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


3 ။ အထွေထွေ function ကို encapsult

ကျွန်ုပ်တို့သည် function ကို encapsulate လုပ်နိုင်သည်, အရာဝတ်ထုများနှင့်အတန်းအစားအမည်များတွင်ဖြတ်သန်းသွားနိုင်သည်။

 function is_a_any($object, array $classNames): bool {
    foreach ($classNames as $className) {
        if (is_a($object, $className)) {
            return true;
        }
    }
    return false;
}

အသုံးပြုမှုဥပမာ -

 $classes = ['Dog', 'Cat', 'Bird'];

if (is_a_any($obj, $classes)) {
    echo "အရာဝတ်ထုအတန်းတစ်ခု၏ပိုင်ဆိုင်သည်";
} else {
    echo "အရာဝတ်ထုများသည်ဤအတန်းများနှင့်မသက်ဆိုင်ပါ";
}

4 ။ နောက်ထပ်တိုးမြှင့်ခြင်း - အမှုမခံစားနိုင်သောလူတန်းစားအမည်များနှင့်တရားစီရင်ခြင်းကိုပံ့ပိုးသည်

PHP ၏အတန်းအစားအမည်များသည်စာလုံးအကြီးအသေးအရေးမကြီးပါ။

 function is_a_any($object, array $classNames): bool {
    foreach ($classNames as $className) {
        if (is_a($object, $className)) {
            return true;
        }
    }
    return false;
}

တကယ်တော့ is_a () သူ့ဟာသူသည်ဖြစ်ရပ်မှန်မခံစားနိုင်ပါ။ ထို့ကြောင့်အပိုအပြောင်းအလဲနဲ့လုပ်ရန်မလိုအပ်ပါ။

အကယ်. အရာဝတ်ထုသည်အချို့သော interface ကိုအကောင်အထည်ဖော်မှုရှိမရှိကိုသင်ဆုံးဖြတ်လိုပါက IS_A () သည်လည်းသက်ဆိုင်သည်။


5 ။ စံနမူနာများနှင့်အတူပြည့်စုံသောကုဒ်ကိုသရုပ်ပြပါ

 <?php

class Dog {}
class Cat {}
class Bird {}

class Bulldog extends Dog {}

function is_a_any($object, array $classNames): bool {
    foreach ($classNames as $className) {
        if (is_a($object, $className)) {
            return true;
        }
    }
    return false;
}

$bulldog = new Bulldog();

$checkClasses = ['Cat', 'Bird', 'Dog'];

if (is_a_any($bulldog, $checkClasses)) {
    echo "အဆိုပါအရာဝတ်ထုသတ်မှတ်ထားသောအတန်းတစ်ခု၏တ ဦး တည်းပိုင်";
} else {
    echo "အရာဝတ်ထုများသည်ဤအတန်းများနှင့်မသက်ဆိုင်ပါ";
}

ရလဒ်များအစက်အပြောက်:

 အဆိုပါအရာဝတ်ထုသတ်မှတ်ထားသောအတန်းတစ်ခု၏တ ဦး တည်းပိုင်

ဘာကြောင့်လဲဆိုတော့ ဘူဒိုဇာ ဟာ ခွေးတစ်ကောင် ခွဲလို့ပဲ။


6 ။ အကျဉ်းချုပ်

  • is_a () အရာဝတ်ထုတစ်ခုသည်အချို့သောလူတန်းစားသို့မဟုတ်၎င်း၏ subclass ပိုင်ရှိမရှိရှာဖွေရန်အသုံးပြုသည်။

  • အတန်းမျိုးစုံကိုအကဲဖြတ်သည့်အခါ SPLOOP Encapsulationsion function ကိုအသုံးပြုပါ

  • ပြောင်းလွယ်ပြင်လွယ်နှင့်စုံစုံလုပ်ဆောင်ချက်များ, ထိန်းသိမ်းရန်လွယ်ကူခြင်းနှင့်ချဲ့ထွင်ရန်လွယ်ကူသည်

ထိုကဲ့သို့သောလုပ်ဆောင်ချက်များကို encapsulating ဖြင့် code သည် ပို. ကြော့ရှင်းလွယ်ကူစွာနားလည်နိုင်ပြီးနားလည်ရန်လွယ်ကူသည်။