PHP တွင်အသုံးပြုသောအရာဝတ်ထုတစ်ခုသည်အချို့သောအရာဝတ်ထုတစ်ခုသို့မဟုတ်ခွဲခြမ်းစိတ်ဖြာခြင်း၏ဥပမာတစ်ခုဖြစ်မသည်ကိုဆုံးဖြတ်ရန်အများအားဖြင့်အသုံးပြုသောနည်းလမ်းများအနက်မှတစ်ခုမှာ is_a () function ကိုသုံးရန်ဖြစ်သည်။ is_a () function သည်အရာဝတ်ထုတစ်ခုသည်သတ်မှတ်ထားသောအတန်းတစ်ခု၏ဥပမာတစ်ခုသို့မဟုတ်ယင်း၏အတန်းမှအမွေဆက်ခံနေသည်ဖြစ်စေရှာဖွေတွေ့ရှိနိုင်သည်။ ပစ်မှတ်အတန်းသည်စိတ်တဇအတန်းတစ်ခုဖြစ်သော်လည်းဤလုပ်ဆောင်မှုသည်ကောင်းမွန်စွာအလုပ်လုပ်သည်။
အရာဝတ်ထုတစ်ခုသည်စိတ်တဇအတန်းတစ်ခု၏ဥပမာတစ်ခုရှိမရှိဆုံးဖြတ်ရန်ဤဆောင်းပါးသည်မည်သို့အသုံးပြုရမည်ကိုအာရုံစိုက်ပါလိမ့်မည် ။ နမူနာကုဒ်သည်အမှန်တကယ်အသုံးပြုမှုနှင့်အာရုံစူးစိုက်မှုအချက်များကိုရောင်ပြန်ဟပ်လိမ့်မည်။
is_a () function ကို၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
is_a(object $object, string $class_name, bool $allow_string = false): bool
$ အရာဝတ်ထု : တရားစီရင်ခံရဖို့အရာဝတ်ထု။
$ class_name : class name (string ကို form) ကိုထောက်ပံ့သည်။
$ Allow_String - ပထမ ဦး ဆုံး parameter ကို class name string ကိုခွင့်ပြုရန်, ပုံမှန် မှားယွင်းသော ။
ဤလုပ်ဆောင်ချက်သည် boolean တန်ဖိုးကို စစ်မှန်သော သို့မဟုတ် မှားယွင်းသော သို့မဟုတ်မှားယွင်းသောအရာဖြစ်သည်။
စိတ်တဇ အတန်း အစားကိုယ်နှိုက်ကိုချက်ချင်းမလုပ်နိုင်ပါ, အမွေဆက်ခံနိုင်သည်။ စိတ်တဇစိတ်တဇအတန်းများကိုအနှောင့်အယှက်ပေးသောအရာဝတ်ထုများကိုအနှောင့်အယှက်ပေးသောအရာဝတ်ထုများကိုလည်းစိတ်တဇအတန်းများအနက်များအဖြစ်သတ်မှတ်သည်။ ထို့ကြောင့်အရာဝတ်ထုသည်စိတ်တဇအတန်းတစ်ခု၏ဥပမာတစ်ခုဖြစ်ခြင်းရှိ,
အောက်ဖော်ပြပါဥပမာသည် is_a () ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// စိတ်တဇအတန်းကိုသတ်မှတ်ပါ Animal
abstract class Animal {
abstract public function makeSound();
}
// စိတ်တဇအတန်းများကိုအမွေဆက်ခံ Animal ၏တိကျသောအမျိုးအစားများ Dog
class Dog extends Animal {
public function makeSound() {
return "Woof!";
}
}
// စိတ်တဇအတန်းများကိုအမွေဆက်ခံ Animal ၏တိကျသောအမျိုးအစားများ Cat
class Cat extends Animal {
public function makeSound() {
return "Meow!";
}
}
$dog = new Dog();
$cat = new Cat();
// တရားစီရင်ချက် $dog ဟုတ်တယ် Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု
if (is_a($dog, 'Animal')) {
echo "Dog ဟုတ်ကဲ့ Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု" . PHP_EOL;
} else {
echo "Dog 不ဟုတ်ကဲ့ Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု" . PHP_EOL;
}
// တရားစီရင်ချက် $cat ဟုတ်တယ် Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု
if (is_a($cat, 'Animal')) {
echo "Cat ဟုတ်ကဲ့ Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု" . PHP_EOL;
} else {
echo "Cat 不ဟုတ်ကဲ့ Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု" . PHP_EOL;
}
// တရားစီရင်ချက် $dog ဟုတ်တယ် Cat အတန်းဥပမာများ
if (is_a($dog, 'Cat')) {
echo "Dog ဟုတ်ကဲ့ Cat အတန်းဥပမာများ" . PHP_EOL;
} else {
echo "Dog 不ဟုတ်ကဲ့ Cat အတန်းဥပမာများ" . PHP_EOL;
}
?>
ရလဒ်များအစက်အပြောက်:
Dog ဟုတ်ကဲ့ Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု
Cat ဟုတ်ကဲ့ Animal စိတ်တဇအတန်းတစ်ခုဥပမာတစ်ခု
Dog 不ဟုတ်ကဲ့ Cat အတန်းဥပမာများ
အတန်းအမည်များသည်စာလုံးအကြီးအသေးအရေးပါသည်
is_a () ၏တရားစီရင်ချက်သည်စာလုံးအကြီးများကိုအရေးပါသည်။
interface တရားစီရင်ခြင်းနှင့်ဆင်တူသည်
is_a () အရာဝတ်ထုတစ်ခု interface ကိုအကောင်အထည်ဖော်မရှိမရှိဆုံးဖြတ်ရန်လည်းအသုံးပြုနိုင်ပါသည်။
strings ဖြတ်သန်းတဲ့အခါ အကယ်. ပထမ ဦး ဆုံး parameter သည်အရာဝတ်ထုတစ်ခုအစားအတန်းအစားအမည်ကို string တစ်ခုဖြစ်ပါကတတိယ parameter သည် မှန်ကန် ရန်သတ်မှတ်ထားရမည်။
if (is_a('Dog', 'Animal', true)) {
echo "Dog 类ဟုတ်ကဲ့ Animal ၏ subclasses" . PHP_EOL;
}
လိုက်ကြားမှု
IS_A () PHP 5.3 မှစတင်သောတတိယ parameter ကိုထောက်ပံ့သည်။
အရာဝတ်ထုတစ်ခုသည်စိတ်တဇအတန်းတစ်ခု၏ဥပမာတစ်ခုရှိမရှိဆုံးဖြတ်ရန် PHP ၏ is_a () function ကိုအသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပြီးထိုးထွင်းသိမြင်မှုသည်အလွန်ရိုးရှင်းပါသည်။ သငျသညျအစွန်အဖျားအတန်း၏အမည်ကိုသိတဲ့အတိုင်းရလဒ်ရရန်အရာဝတ်ထုနှင့်အတန်းအမည်ရှိ pass ။ ၎င်းသည်အရာဝတ်ထုကို ဦး စားပေးပရိုဂရမ်များတွင်ရိုက်ချက်နှင့် polymorphic processing အတွက်အလွန်အထောက်အကူပြုသည်။