Class_Exists သည် PHP တွင်သတ်မှတ်ထားသောအတန်းအစားသတ်မှတ်ထားခြင်းရှိမရှိစစ်ဆေးရန် PHP တွင်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ အတန်းကိုသတ်မှတ်ထားတဲ့အတန်းကို သတ်မှတ် ပါ ။
<span><span><span class="hljs-title function_ invoke__">class_exists</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$class_name</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$autoload</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ class_name - စစ်ဆေးရန်အတန်းအစားအမည်ကို string တစ်ခုဖြစ်ရမည်။
$ autoload : အလိုအလျောက်တင်ခြင်းကိုဖွင့ ် ရန်ဖြစ်စေ, False မှသတ်မှတ်ထားပါက PHP သည်အတန်းကိုအလိုအလျောက်ဖွင့်ရန်မကြိုးစားပါ။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">class_exists</span></span><span>(</span><span><span class="hljs-string">'MyClass'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အမျိုးအစား MyClass သတ်မှတ်'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အမျိုးအစား MyClass undefined'</span></span><span>;
}
</span></span>
အထက်ပါဥပမာတွင် MyClass ရှိပြီးသားရှိမရှိစစ်ဆေးရန် Class_exists ကို စစ်ဆေးရန်အသုံးပြုသည်။ အကယ်. ပစ္စုပ္ပန်ပါက "Class MyClass" ကိုသတ်မှတ်ခြင်း ", မဟုတ်ရင် MyClass" မသတ်မှတ်ထားပါ "ဟုသတ်မှတ်သည်။
Autoload ကို မှန်ကန်စွာ သတ်မှတ်သောအခါ PHP သည်အတန်းမ 0 င်ပါက PHP သည်၎င်းကိုဖွင့်ရန်ကြိုးစားလိမ့်မည်။ ပုံမှန်အားဖြင့် PHP သည် spl_autoload_register ကဲ့သို့သော autoloading ယန္တရားကို အသုံးပြု. PHP သည်အတန်းများကိုတင်ရန်ကြိုးစားသည်။
Class_exists နှင့်ဆင်တူသည်, interface_exists သည် interface ကိုသတ်မှတ်မသတ်မှတ်ရန်အသုံးပြုသည်။ သတ်မှတ်ထားသော interface တည်ရှိမှုရှိမရှိညွှန်ပြသည့် စစ်မှန်သော သို့မဟုတ် မှားယွင်းသော ပြန်လာသည်။
<span><span><span class="hljs-title function_ invoke__">interface_exists</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$interface_name</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$autoload</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ interface_NAME - စစ်ဆေးရမည့် interface name သည် string တစ်ခုဖြစ်ရမည်။
$ autoload : အလိုအလျောက်တင်ခြင်းကိုဖွင့ ် ရန်ဖြစ်စေ, False မှသတ်မှတ်ထားပါက PHP သည် interface ကိုအလိုအလျောက်ဖွင့်ရန်မကြိုးစားပါ။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">interface_exists</span></span><span>(</span><span><span class="hljs-string">'MyInterface'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'ထိသိျက်နှာ MyInterface သတ်မှတ်'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'ထိသိျက်နှာ MyInterface undefined'</span></span><span>;
}
</span></span>
ဤဥပမာတွင် interface_exists သည် Myinalface interface ကိုသတ်မှတ်ခြင်းရှိမရှိစစ်ဆေးသည်။ အကယ်. သတ်မှတ်ထားပါက "interface myinalinkace" ကိုအဓိပ္ပါယ်ဖွင့်ဆိုထားသည်။
class_exists နှင့် interface_exists များသည်အလွန်ဆင်တူသော်လည်း၎င်းတို့အကြားမရှိမဖြစ်ကွဲပြားမှုများရှိသည်။
ကွဲပြားခြားနားသောရည်မှန်းချက်များကိုစစ်ဆေးပါ :
Class_Exists သည် အတန်းတစ်ခုသတ်မှတ်ထားခြင်းရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။
interface_exists သည် interface တစ်ခုသတ်မှတ်ခြင်းရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။
ကွဲပြားခြားနားသောအသုံးပြုမှု :
အတန်းများသည်များသောအားဖြင့်အရာဝတ်ထုများ၏တင်းပလိတ်များရှိပြီး၎င်းကို instantiate လုပ်နိုင်စွမ်းရှိသည်။
Interface ဆိုသည်မှာအတန်းအစားအကောင်အထည်ဖော်ရန်လုပ်ဆောင်မည့်လုပ်ဆောင်ချက်များကိုသတ်မှတ်သည့်စည်းဝေးကြီးတစ်ခုဖြစ်သည်။
အလိုအလျောက်တင်ခြင်း၏သက်ရောက်မှု :
နှစ် ဦး စလုံးလုပ်ဆောင်ချက်များကို autoload parameters တွေကိုထောက်ခံပါတယ်။ စစ်မှန်တဲ့ php လုပ်ပါက PHP သည် undefined အတန်းများသို့မဟုတ် interfaces များကိုအလိုအလျောက်ဖွင့်ရန်ကြိုးစားသည်။
ခြားနားချက်မှာလူတန်းစား 0 ယ်ယူသူများ၏အလိုအလျောက် 0 န်ဆောင်မှုပေးခြင်းကိုပုံမှန်အားဖြင့် (ဥပမာ Spl_autoload_register ) ၏ 0 င်ရောက်လာခြင်းကအတော်လေးရှားပါးသည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်မတူညီသောအခြေအနေများအပေါ် အခြေခံ. class_exists သို့မဟုတ် interface_exists ကို အသုံးပြုလိုခြင်းရှိမရှိကိုကျွန်ုပ်တို့မကြာခဏဆုံးဖြတ်ရန်လိုအပ်သည်။
Class_Exists ကို အသုံးပြုခြင်း -
အတန်းများကိုမကြာခဏအသုံးပြုသောအတန်းအစားကိုသတ်မှတ်ထားသောသို့မဟုတ်တင်ဆောင်ခြင်းရှိမရှိဆုံးဖြတ်သည်။
အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားအောက်တွင်ဤလုပ်ဆောင်မှုကိုများသောအားဖြင့်စာသင်ခန်းသည်ထပ်တိုးသို့မဟုတ်ချက်ချင်းတားဆီးရန်အတန်းတက်ခြင်းရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။
ဥပမာ -
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">class_exists</span></span><span>(</span><span><span class="hljs-string">'DatabaseConnection'</span></span><span>)) {
</span><span><span class="hljs-variable">$db</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DatabaseConnection</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// 处理undefinedအမျိုးအစား的情况</span></span><span>
}
</span></span>
interface_exists ကို သုံးခြင်း -
interface တစ်ခုသတ်မှတ်ထားခြင်းရှိမရှိဆုံးဖြတ်ပါ, များသောအားဖြင့် polytymorphic နှင့်မှီခိုသောဆေးထိုးခြင်းဖြစ်သည့်အခြေအနေများတွင်အသုံးပြုသည်ကိုဆုံးဖြတ်ပါ။
အတန်းတစ်ခုသည် interface ကိုအကောင်အထည်ဖော်နေသလားဆိုတာဆုံးဖြတ်တဲ့အခါ interface တည်ရှိနေပြီဆိုတာကိုဆုံးဖြတ်ဖို့ interface_exists ကို ပထမဆုံးသုံးနိုင်တယ်။
ဥပမာ -
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">interface_exists</span></span><span>(</span><span><span class="hljs-string">'LoggerInterface'</span></span><span>) && </span><span><span class="hljs-variable">$logger</span></span><span> </span><span><span class="hljs-keyword">instanceof</span></span><span> LoggerInterface) {
</span><span><span class="hljs-variable">$logger</span></span><span>-></span><span><span class="hljs-title function_ invoke__">log</span></span><span>(</span><span><span class="hljs-string">'မှတ်တမ်းသတင်းအချက်အလက်'</span></span><span>);
}
</span></span>