လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Policy Mode တွင် is_a () အမျိုးအစား Vication Realation ၏အခန်းကဏ် is သည်

Policy Mode တွင် is_a () အမျိုးအစား Vication Realation ၏အခန်းကဏ် is သည်

M66 2025-06-05

မဟာဗျူဟာပုံစံများကိုအသုံးပြုသောပြောင်းလွယ်ပြင်လွယ်ပရိုဂရမ်တည်ဆောက်ပုံတည်ဆောက်ရာများကိုတည်ဆောက်ရာတွင် 0 င်လာသောပေါ်လစီအရာဝတ်ထုများသည်မျှော်လင့်ထားသည့် interface သို့မဟုတ်မိဘအမျိုးအစားများနှင့်တွေ့ဆုံရန်သေချာစေရန်လိုအပ်သည်။ PHP တွင် is_a () function သည် runtime တွင်အမျိုးအစားစိစစ်အတည်ပြုမှုကိုလုပ်ဆောင်ရန်အတွက်အကောက်ခွန်နည်းပါးသည်။

မူဝါဒပုံစံ၏အဓိကအယူအဆမှာ Algorithms သို့မဟုတ်အပြုအမူများကို algorithms သို့မဟုတ်အပြုအမူများကိုလွတ်လပ်သောမူဝါဒအတန်းများအဖြစ်သတ်မှတ်ရန်ဖြစ်သည်။ ပုံမှန်အားဖြင့်ဤပေါ်လစီသင်တန်းများသည် strategeistrinterface ကဲ့သို့သောပေါင်းစည်းသည့် interface ကိုအကောင်အထည်ဖော်ကြသည်။ ပြင်ပမှထိုးသွင်းထားသောအရာဝတ်ထုသည်အမှန်ပင် interface ၏အကောင်အထည်ဖော်မှုအတန်းကိုသေချာစေရန်အတွက်ကျွန်ုပ်တို့သည် vernation validation အတွက် _A () ကို သုံးနိုင်သည်။

ဤတွင်မူဝါဒ Mode တွင် IS_A () ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။

<code> interface strategyinterface {အများပြည်သူလုပ်ဆောင်ချက် execute (); }

Class Strategya သည် strategegyinterface ကိုအကောင်အထည်ဖော်သည်
အများပြည်သူ function ကို execute () {)
ECHO "Strategigya Policy Musal \ n";
}
}

Class Stategyb သည် strategegyinterface ကိုအကောင်အထည်ဖော်သည်
အများပြည်သူ function ကို execute () {)
ECHO "Strategyb မူဝါဒကိုသုံးပါ";
}
}

အတန်းအခြေအနေ {
ပုဂ္ဂလိက $ မဟာဗျူဟာ;

 public function setStrategy($strategy) {
    if (!is_a($strategy, StrategyInterface::class)) {
        throw new InvalidArgumentException("မူဝါဒအရာဝတ်ထုကိုအကောင်အထည်ဖော်ရမည် StrategyInterface ထိသိျက်နှာ");
    }
    $this->strategy = $strategy;
}

public function executeStrategy() {
    $this->strategy->execute();
}

}

// client ကိုကုဒ်
$ Context = အခြေအနေအသစ် ();
$ Context-> setstrategy (အသစ် strategya ());
$ Context -> ExecutESTARGAGY ();
</ code>

အထက်ပါကုဒ်တွင် Context သည် Setstrategy () method () နည်းလမ်းဖြင့်မူဝါဒအရာဝတ်ထုကိုလက်ခံရရှိသည် မကိုက်ညီပါကခြွင်းချက်တစ်ခုပစ်ချလိမ့်မည်။ ၎င်းသည်မှားယွင်းသောအရာဝတ်ထုများကိုမူဝါဒတစ်ခုအဖြစ်သတ်မှတ်ခြင်းမှကာကွယ်ပေးသည်။

၎င်းသည် is_a () သည် parameters နှစ်ခုကိုလက်ခံသင့်သည်။ ပထမအချက်မှာပထမ ဦး ဆုံးအနေဖြင့် check လုပ်ထားသည့်အရာဝတ်ထုသို့မဟုတ် interface အမည်ဖြစ်သည်။ ၎င်းသည်တတိယ boolean parameter သည်ကိုလည်းလက်ခံနိုင်သည်။ အကယ်. မှန်ကန် ရန်သတ်မှတ်ထားပါက၎င်းသည်အတန်းအမည်ရှိကြိုးများအကြားအမွေဆက်ခံနိုင်သည်။ သို့သော်အရာဝတ်ထုစစ်ဆေးမှုတွင်၎င်းကိုယေဘုယျအားဖြင့်ချန်လှပ်ထားသည်။

အကယ်. သင်သည်အသုံးပြုသူများကိုမူဝါဒဆိုင်ရာအတန်းအစားအမည်များမှတစ်ဆင့်မူဝါဒလူတန်းစားအမည်များမှတစ်ဆင့်သုံးစွဲသူများအားလွဲချော်စွာဖွင့်ရန်ခွင့်ပြုသည့် modular system ကိုသင်တီထွင်နေပါကအတန်းအစားအရာဝတ်ထုကိုပထမ ဦး စွာစစ်ဆေးပြီးအတည်ပြုရန် is_a () ကို သုံးနိုင်သည်။ ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည် -

<Code> $ ClassName = 'Strategyb'; $ straticyinstance = $ classname အသစ် ();

လျှင် (! is_a ($ strategegystance, strategyinterface :: class))
Runtimeexception အသစ်ကိုလွှင့်ပစ်ပါ
}

$ Context-> setstrategy ($ strategateinstance);
</ code>

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

ယေဘုယျအားဖြင့် IS_A () သည် PHP မှပေးသော Runtime အမျိုးအစားစစ်ဆေးမှုကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် developer များကိုမူဝါဒအမျိုးအစားများကိုအတည်ပြုရန်ခွင့်ပြုထားသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် interfaces များနှင့်အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားများနှင့်ပေါင်းစပ်ထားသော is_a () သည် အရာဝတ်ထု ဦး စားပေးဒီဇိုင်း၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သောပြောင်းလွယ်ပြင်လွယ်။ ကျယ်ပြန့်သောမူဝါဒစနစ်တစ်ခုကိုတည်ဆောက်နိုင်သည်။