is_a(object|string $object_or_class, string $class, bool $allow_string = false): bool
$ object_or_Class : အရာဝတ်ထုတစ်ခုသို့မဟုတ်အတန်းအစားအမည်တစ်ခုဖြစ်နိုင်ပါတယ်။
$ အတန်း - Target Class Name ကိုဆုံးဖြတ်ရန်။
$ Allow_String - အကယ်. လွန်သွားသောအခါအရာဝတ်ထုတစ်ခုအစားအတန်းအစားအမည်တစ်ခုဖြစ်ပါကဤ parameter သည် မှန်ကန် ရန်သတ်မှတ်ထားရမည်။
ဥပမာ -
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
var_dump(is_a($dog, 'Animal')); // true
ကြိုးကိုလည်းဖြတ်ကြလော့။
var_dump(is_a('Dog', 'Animal', true)); // true
$object instanceof ClassName
ဥပမာ -
$dog = new Dog();
var_dump($dog instanceof Animal); // true
မှတ်စု: Instranceof ကို အရာဝတ်ထုများအတွက်သာအသုံးပြုနိုင်ပြီးအတန်းအမည်ရှိကြိုးများအတွက်တိုက်ရိုက်မသုံးနိုင်ပါ။
နှစ် ဦး စလုံးသည်အရာဝတ်ထုတစ်ခု၏ဥပမာတစ်ခု၏ဥပမာတစ်ခုသို့မဟုတ် subclass ရှိမရှိဆုံးဖြတ်ရန် Boolean တန်ဖိုးကိုပြန်ပို့သည်။ ဒါပေမယ့်
is_a () သည် ပို . စိတ်အေးလက်အေးရှိပြီးအတန်းအစားအမည်ကိုတရားစီရင်နိုင်သည်။
Instanceof သည်ပိုမိုတင်းကျပ်။ ပိုမိုသောအရာဝတ်ထုကို ဦး စားပေးပြီး,
အခြေအနေအများစုတွင်နှစ်ခုအကြားစွမ်းဆောင်ရည်ကွာဟချက်ကိုလျစ်လျူရှုနိုင်သည်။ သို့သော်ဘာသာစကား၏ရှုထောင့်မှကြည့်လျှင် Instanceof သည်အရာဝတ်ထုအပေါ်တိုက်ရိုက်လုပ်ဆောင်ခြင်းနှင့်အနည်းငယ်ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်ကိုလုပ်ဆောင်သောအော်ပရေတာတစ်ခုဖြစ်သည်။ နှင့် is_a () is_a () သည် calling overhead နှင့်အတူ function ကိုဖြစ်ပါတယ်။
သင်မကြာခဏကွင်းဆက်တွင်အမျိုးအစားစီရင်ချက်များကိုလုပ်ဆောင်ခြင်းမရှိပါက၎င်းကိုသင်အလွန်အမင်းအာရုံစိုက်ရန်မလိုအပ်ပါ။
IS_A () သည် PHP 5 မတိုင်မီအလားတူပြည်တွင်းရေး function ကိုဖြစ်ပြီး PHP 5 မှစ. လက်ရှိပုံစံကိုတရားဝင်ထောက်ခံခဲ့သည်။
Instanceof သည်ဘာသာစကားအော်ပရေတာတစ်ခုဖြစ်ပြီးပံ့ပိုးမှု၌တည်ငြိမ်မှုရှိခဲ့သည်။
သင်၏ကုဒ်သည်အစောပိုင်းဗားရှင်းများနှင့်သဟဇာတဖြစ်စေရန်သို့မဟုတ် function ခေါ်ဆိုမှုများကိုရှောင်ကြဉ်ရန်သို့မဟုတ် function ခေါ်ဆိုမှုများကိုရှောင်ရှားရန်သို့မဟုတ် function ခေါ်ဆိုမှုများကိုရှောင်ရှားရန် (ဥပမာ function များ,
When making judgments using the class name provided by the user, is_a() is easily misused. ဥပမာအားဖြင့်:
$class = $_GET['class']; // အသုံးပြုသူများသည်မည်သည့်လူတန်းစားအမည်ကိုမဆိုဖြတ်သန်းသွားနိုင်သည်
if (is_a($object, $class)) {
// ...
}
ဤရွေ့ကား dynamic တရားစီရင်ခြင်းအမျိုးအစားတွင်လုံခြုံစိတ်ချရသောအန္တရာယ်အချို့ရှိသည်။ Instanceof ကို အသုံးပြုခြင်းသည်ပုံအမျိုးအစားများကိုပိုမိုလွယ်ကူစွာတားဆီးနိုင်ပြီးအလားအလာရှိသောဆေးထိုးခြင်းသို့မဟုတ်လွဲမှားခြင်းများကိုရှောင်ရှားနိုင်သည်။
အောက်ပါအကြောင်းပြချက်များအတွက်ပထမ ဦး ဆုံး instanceof ကို အသုံးပြုရန်အကြံပြုသည် -
အရာဝတ်ထု -oriented programming စတိုင်နှင့်အညီ semantic နှင့်အညီ။
အမှားအယွင်းနည်းသောအန္တရာယ်, ပိုမိုရှင်းလင်းသောအမျိုးအစားယုတ္တိဗေဒ။
အနည်းငယ်အလွန်အစွမ်းထက်တဲ့စွမ်းဆောင်ရည်နှင့်ပိုမိုရိုးရှင်းတဲ့စကားရပ်။
လူအနည်းငယ်သည်အတန်းအမည်များကိုမှန်ကန်စွာပြုလုပ်ရန်လိုအပ်သည့်အခါ (စက်ရုံ mode, plug-in လုပ်ခြင်း) ကိုအသုံးပြုနိုင်သောအခါ is_a () ကို သုံး နိုင်သည်,
ဥပမာအားဖြင့်:
$class = 'App\\Plugins\\SomeHandler';
if (is_a($handler, $class, true)) {
$handler->handle();
}
his ည့်သည် Dynamic Plugin စီမံခန့်ခွဲမှုနမူနာကုဒ်:
https://m66.net/examples/plugin-loader.php