လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> is_a () နှင့် get_class () class level ကိုဆုံးဖြတ်ရန်အသုံးပြုသည်

is_a () နှင့် get_class () class level ကိုဆုံးဖြတ်ရန်အသုံးပြုသည်

M66 2025-05-29

PHP Object-Objected Programming တွင်အရာဝတ်ထုတစ်ခုသည်အချို့သောအရာဝတ်ထုတစ်ခုသို့မဟုတ်အရာဝတ်ထု၏အတန်းအဆင့်ဆက်ဆံရေးကိုဆုံးဖြတ်ရန်ဆုံးဖြတ်ရန်မကြာခဏလိုအပ်သည်။ is_a () နှင့် get_class () သည်များသောအားဖြင့်အသုံးများသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်ပြီး၎င်းတို့နှင့်ပေါင်းစပ်ထားသောအသုံးပြုသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်တာနှစ်ခုအသုံးပြုခြင်းကိုအသေးစိတ်ဖော်ပြပြီး၎င်းတို့ကိုမည်သို့အတူတကွအသုံးပြုရမည်ကိုသရုပ်ဖော်ရန်ဥပမာများကိုအသုံးပြုပါမည်။


1 ။ အခြေခံနိဒါန်း

is_a ()

is_a () function သည်အရာဝတ်ထုတစ်ခုသည်အတန်းတစ်ခု၏ဥပမာတစ်ခု, သို့မဟုတ်အရာဝတ်ထု၏အတန်းအစားသည်ထိုအတန်းမှအမွေဆက်ခံသည်ကိုစစ်ဆေးရန်အသုံးပြုသည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool is_a(object $object, string $class_name, bool $allow_string = false)
  • $ အရာဝတ်ထု : စစ်ဆေးခံရဖို့အရာဝတ်ထု။

  • $ class_name : ပစ်မှတ်အတန်းအစားအမည်။

  • $ Allow_String : အကယ်. မှန်ကန် ပါကပထမအကြိမ်အငြင်းပွားမှုကိုအရာဝတ်ထုတစ်ခုမျှသာမဟုတ်ဘဲအတန်းအစားအမည် string ကိုခွင့်ပြုသည်။

is_a () သည် အရာဝတ်ထုနှင့်၎င်း၏မိဘအတန်းအစားကွင်းဆက်ကို 0 င်ရောက်သည့်အတန်းကိုစစ်ဆေးလိမ့်မည်။ သူတို့ထဲမှတစ် ဦး တွေ့ဆုံခဲ့သမျှကာလပတ်လုံး ပြည့်စုံ လိမ့်မည်။

Get_Class ()

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

 string get_class(object $object)

၎င်းသည်လက်ရှိအခြေအနေ၏လက်ရှိလူတန်းစားအမည်ကိုသာပြန်လည်ရရှိပြီးမိဘအတန်းအစားမပါ 0 င်ပါ။


2 ။ အဘယ်ကြောင့်ပေါင်းစပ်အသုံးပြု?

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

  • အရာဝတ်ထုသည်သတ်သတ်မှတ်မှတ်လူတန်းစား (အမွေဆက်ခံခြင်းမစဉ်းစားပါ)

  • အရာဝတ်ထုသည်အချို့သောလူတန်းစားသို့မဟုတ်ဤအတန်းအစား၏ subclass ရှိမရှိ

  • အမွေဥစ်စာအတွက်အဆင့်ဆင့်ကွဲပြားခြားနားမှုဆုံးဖြတ်ရန်

ယခုအချိန်တွင် Get_Class () နှင့် is_a () ပေါင်းစပ်မှုပေါင်းစပ်မှုသည်တရားစီရင်ရာအမျိုးမျိုးကိုအကောင်အထည်ဖော်နိုင်သည်။


3 ။ နမူနာသရုပ်ပြ

အောက်ပါလူတန်းစားဖွဲ့စည်းပုံရှိသည်ဆိုပါစို့:

 class Animal {}
class Dog extends Animal {}
class Poodle extends Dog {}

$poodle = new Poodle();

ဥပမာ 1 - ၎င်းသည်လူတန်းစားသို့မဟုတ်ယင်း၏ subclass ဟုတ်မဟုတ်ဆုံးဖြတ်ရန်

 if (is_a($poodle, 'Dog')) {
    echo 'ဒါDogသို့မဟုတ်Dogsubclass သာဓကများ';
}

ထုတ်လုပ်မှု -

 ဒါDogသို့မဟုတ်Dogsubclass သာဓကများ

ဥပမာ 2 - သတ်မှတ်ထားသည့်သတ်မှတ်ထားသောလူတန်းစား (subclasses ဖယ်ထုတ်ခြင်း) ဟုတ်မဟုတ်ဆုံးဖြတ်ရန်

 if (get_class($poodle) === 'Dog') {
    echo 'ဒါDogအတန်းဥပမာများ';
} else {
    echo 'မဟုတ်Dogအတန်းဥပမာ';
}

ထုတ်လုပ်မှု -

 မဟုတ်Dogအတန်းဥပမာ

ဥပမာ 3 - ပူးတွဲအသုံးပြုမှုဆိုင်ရာတရားစီရင်ခြင်း

 if (is_a($poodle, 'Dog') && get_class($poodle) !== 'Dog') {
    echo 'ဒါDogsubclass သာဓကများ,但မဟုတ်Dogအတန်းအစား';
}

ထုတ်လုပ်မှု -

 ဒါDogsubclass သာဓကများ,但မဟုတ်Dogအတန်းအစား

4 ။ အမှန်တကယ် application နှင့်အတူပေါင်းစပ်

အချို့သောစီးပွားရေးယုတ္တိဗေဒ၌လိုအပ်လိမ့်မည် -

  • အတန်းကိုယ်နှိုက်အတွက်ယုတ္တိဗေဒ Execute လုပ်ပါ

  • subclasses များအတွက်ကွဲပြားခြားနားသောယုတ္တိဗေဒ execute

is_a () နှင့် get_class () ကိုမှန်ကန်စွာထိန်းချုပ်ရန်ပူးတွဲတရားစီရင်ခြင်းကိုသုံးနိုင်သည်။


5 ။ မှတ်စုဖို့အရာ

  • string class name တရားစီရင်မှုကိုခွင့်ပြုရန်တတိယ parameter ကိုထောက်ပံ့သည်

  • Get_Class () အရာဝတ်ထု parameters တွေကိုသာလက်ခံပြီးကြိုးများကိုတိုက်ရိုက်မသွားနိုင်ပါ။

  • Class အမည်များသည်စာလုံးအကြီးအသေးအရေးတတ်ခြင်းနှင့်အမှု၏ရှေ့နောက်ညီညွတ်မှုကိုအာရုံစိုက်ပါ။

  • PHP 5.3.0 ပြီးနောက် is_a () is_a () သည် သံကြိုးများကိုပထမ ဦး ဆုံး parameter အဖြစ်လက်ခံပြီးတတိယ parameter သည် အမှန်ပင် အသုံးပြုသည်။


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

is_a () နှင့် get_class () ပေါင်းစပ်ခြင်းအားဖြင့် PHP တွင် Class Hierarchy ဆက်ဆံရေးကိုပိုမိုတိကျစွာဆုံးဖြတ်နိုင်သည်။

  • is_a () က ၎င်းသည်လူတန်းစားသို့မဟုတ်ယင်း၏ subclass နှင့်သက်ဆိုင်ခြင်းရှိမရှိဆုံးဖြတ်သည်။

  • Get_Class () အရာဝတ်ထု၏တိကျသောလူတန်းစားအမည်ကိုဆုံးဖြတ်သည်။

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


7 ။ ရည်ညွှန်း link ကို