PHP Object-Objected Programming တွင်အရာဝတ်ထုတစ်ခုသည်အချို့သောအရာဝတ်ထုတစ်ခုသို့မဟုတ်အရာဝတ်ထု၏အတန်းအဆင့်ဆက်ဆံရေးကိုဆုံးဖြတ်ရန်ဆုံးဖြတ်ရန်မကြာခဏလိုအပ်သည်။ is_a () နှင့် get_class () သည်များသောအားဖြင့်အသုံးများသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်ပြီး၎င်းတို့နှင့်ပေါင်းစပ်ထားသောအသုံးပြုသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်တာနှစ်ခုအသုံးပြုခြင်းကိုအသေးစိတ်ဖော်ပြပြီး၎င်းတို့ကိုမည်သို့အတူတကွအသုံးပြုရမည်ကိုသရုပ်ဖော်ရန်ဥပမာများကိုအသုံးပြုပါမည်။
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 () လုပ်ဆောင်ချက်သည်အရာဝတ်ထုတစ်ခု၏အမှန်တကယ်အတန်းအစားအမည်ကိုပြန်လည်ရောက်ရှိစေသည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string get_class(object $object)
၎င်းသည်လက်ရှိအခြေအနေ၏လက်ရှိလူတန်းစားအမည်ကိုသာပြန်လည်ရရှိပြီးမိဘအတန်းအစားမပါ 0 င်ပါ။
is_a () ကို အသုံးပြုခြင်းသည်တစ်စုံတစ်ရာသည်လူတန်းစားသို့မဟုတ်ယင်း၏မိဘအတန်းအစားနှင့်သက်ဆိုင်သည်ကိုအသုံးပြုခြင်းသည်ဆုံးဖြတ်နိုင်ခဲ့သည်။ သို့သော်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည်တရားစီရင်ရန်လိုအပ်သည်။
အရာဝတ်ထုသည်သတ်သတ်မှတ်မှတ်လူတန်းစား (အမွေဆက်ခံခြင်းမစဉ်းစားပါ)
အရာဝတ်ထုသည်အချို့သောလူတန်းစားသို့မဟုတ်ဤအတန်းအစား၏ subclass ရှိမရှိ
အမွေဥစ်စာအတွက်အဆင့်ဆင့်ကွဲပြားခြားနားမှုဆုံးဖြတ်ရန်
ယခုအချိန်တွင် Get_Class () နှင့် is_a () ပေါင်းစပ်မှုပေါင်းစပ်မှုသည်တရားစီရင်ရာအမျိုးမျိုးကိုအကောင်အထည်ဖော်နိုင်သည်။
အောက်ပါလူတန်းစားဖွဲ့စည်းပုံရှိသည်ဆိုပါစို့:
class Animal {}
class Dog extends Animal {}
class Poodle extends Dog {}
$poodle = new Poodle();
if (is_a($poodle, 'Dog')) {
echo 'ဒါDogသို့မဟုတ်Dogsubclass သာဓကများ';
}
ထုတ်လုပ်မှု -
ဒါDogသို့မဟုတ်Dogsubclass သာဓကများ
if (get_class($poodle) === 'Dog') {
echo 'ဒါDogအတန်းဥပမာများ';
} else {
echo 'မဟုတ်Dogအတန်းဥပမာ';
}
ထုတ်လုပ်မှု -
မဟုတ်Dogအတန်းဥပမာ
if (is_a($poodle, 'Dog') && get_class($poodle) !== 'Dog') {
echo 'ဒါDogsubclass သာဓကများ,但မဟုတ်Dogအတန်းအစား';
}
ထုတ်လုပ်မှု -
ဒါDogsubclass သာဓကများ,但မဟုတ်Dogအတန်းအစား
အချို့သောစီးပွားရေးယုတ္တိဗေဒ၌လိုအပ်လိမ့်မည် -
အတန်းကိုယ်နှိုက်အတွက်ယုတ္တိဗေဒ Execute လုပ်ပါ
subclasses များအတွက်ကွဲပြားခြားနားသောယုတ္တိဗေဒ execute
is_a () နှင့် get_class () ကိုမှန်ကန်စွာထိန်းချုပ်ရန်ပူးတွဲတရားစီရင်ခြင်းကိုသုံးနိုင်သည်။
string class name တရားစီရင်မှုကိုခွင့်ပြုရန်တတိယ parameter ကိုထောက်ပံ့သည် ။
Get_Class () အရာဝတ်ထု parameters တွေကိုသာလက်ခံပြီးကြိုးများကိုတိုက်ရိုက်မသွားနိုင်ပါ။
Class အမည်များသည်စာလုံးအကြီးအသေးအရေးတတ်ခြင်းနှင့်အမှု၏ရှေ့နောက်ညီညွတ်မှုကိုအာရုံစိုက်ပါ။
PHP 5.3.0 ပြီးနောက် is_a () is_a () သည် သံကြိုးများကိုပထမ ဦး ဆုံး parameter အဖြစ်လက်ခံပြီးတတိယ parameter သည် အမှန်ပင် အသုံးပြုသည်။
is_a () နှင့် get_class () ပေါင်းစပ်ခြင်းအားဖြင့် PHP တွင် Class Hierarchy ဆက်ဆံရေးကိုပိုမိုတိကျစွာဆုံးဖြတ်နိုင်သည်။
is_a () က ၎င်းသည်လူတန်းစားသို့မဟုတ်ယင်း၏ subclass နှင့်သက်ဆိုင်ခြင်းရှိမရှိဆုံးဖြတ်သည်။
Get_Class () အရာဝတ်ထု၏တိကျသောလူတန်းစားအမည်ကိုဆုံးဖြတ်သည်။
ပူးတွဲအသုံးပြုမှုသည်တိကျသောစီးပွားရေးလုပ်ငန်းများလိုအပ်ချက်များကိုဖြည့်ဆည်းရန်တိကျသောအမျိုးအစားများကိုအမွေမျိုးအမျိုးအစားများနှင့်ခွဲခြားနိုင်သည်။