Object-Oriented Programming (oop) သည် PHP ၏အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ အရာဝတ်ထုတစ်ခုသည်အချို့သောလူတန်းစားတစ် ဦး သို့မဟုတ်၎င်း၏မိဘအတန်းအစားနှင့်သက်ဆိုင်ခြင်းရှိမရှိဆုံးဖြတ်ခြင်းသည်နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ဘုံလိုအပ်ချက်ဖြစ်သည်။ PHP သည် ဤလုပ်ဆောင်မှုကိုရရှိရန်အတွက်အလွန်လက်တွေ့ကျသော built-in functions နှစ်ခုကိုထောက်ပံ့ပေးသည် ။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခု၏အသုံးပြုမှုကိုအသေးစိတ်ဖော်ပြရန်နှင့်အရာဝတ်ထုသည်အချို့သောမိဘအတန်းအစားသို့မဟုတ်အမွေပေးစနစ်နှင့်သက်ဆိုင်သည်ကိုမည်သို့ဆုံးဖြတ်ရမည်ကိုဥပမာအားဖြင့်ပြသမည်။
is_a () function သည်အရာဝတ်ထုတစ်ခုသည်အချို့သောအတန်းတစ်ခု၏ဥပမာတစ်ခုသို့မဟုတ်ထိုအတန်း၏ subclass ဥပမာတစ်ခုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
bool is_a(object $object, string $class_name, bool $allow_string = false)
$ object : ရှာဖွေတွေ့ရှိရန်လိုအပ်သည့်အရာဝတ်ထုဥပမာ။
$ class_name : သတ်မှတ်ထားသောအတန်းအစားအမည် (string) ။
$ Allow_String : Optional Parameter, ပထမ ဦး ဆုံး parameter ကို class name string ကို (အရာဝတ်ထု) သို့သွားခွင့်ပြုရန် default မှ default optional parameter
$ အရာဝတ်ထု သည် $ အရာ ဝတ်ထု $ class_name သို့မဟုတ်၎င်း၏ subclass ၏ဥပမာတစ်ခုဖြစ်ပါက စစ်မှန်ပါ ။
<?php
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
var_dump(is_a($dog, 'Animal')); // bool(true)
var_dump(is_a($dog, 'Dog')); // bool(true)
var_dump(is_a($dog, 'Cat')); // bool(false)
?>
အထက်ပါဥပမာတွင် ဒေါ်လာခွေးသည် ခွေး အတန်း အစား၏ဥပမာတစ်ခုဖြစ်ပြီး ခွေး သည် တိရစ္ဆာန် အမျိုးအစား ခွဲတစ်ခုဖြစ်သည်။
Get_parent_Class () ကိုအတန်းအစားသို့မဟုတ်အရာဝတ်ထုတစ်ခု၏အတန်းအမည်ကိုရရှိရန်အသုံးပြုသည်။ အကယ်. အတန်းတွင်မိဘအတန်းအစားမရှိပါက မှားယွင်းသောအ ယူမှားသည်။
function ရှေ့ပြေးပုံစံ:
string|false get_parent_class(object|string $class)
အဆိုပါ parameters တွေကိုအရာဝတ်ထုဥပမာတစ်ခုသို့မဟုတ်အတန်းအမည် string ကိုဖြစ်နိုင်ပါတယ်။
get_parent_class () ကိုပြန်လည်ထုတ်ဖော်ပြောဆိုခြင်းအားဖြင့်အရာဝတ်ထုသည်အမွေဥစ်စာအချို့သောအမွေတစ်ခုတွင်ရှိမရှိဆုံးဖြတ်နိုင်သည်။
<?php
class Vehicle {}
class Car extends Vehicle {}
class SportsCar extends Car {}
$sportsCar = new SportsCar();
$parent = get_parent_class($sportsCar); // Car
while ($parent !== false) {
echo $parent . PHP_EOL;
$parent = get_parent_class($parent);
}
// ထုတ်လုပ်ခြင်း:
// Car
// Vehicle
?>
အရာဝတ်ထုတစ်ခုသည် ယာဉ်တန်းတစ်ခု သို့မဟုတ်၎င်း၏ Subclass ၏ဥပမာတစ်ခုရှိမရှိဆုံးဖြတ်လိုသည်ဆိုပါစို့ ။
<?php
function isInstanceOfParent($object, $parentClass) {
$class = get_class($object);
if ($class === $parentClass) {
return true;
}
while ($parent = get_parent_class($class)) {
if ($parent === $parentClass) {
return true;
}
$class = $parent;
}
return false;
}
class Vehicle {}
class Car extends Vehicle {}
class SportsCar extends Car {}
$sportsCar = new SportsCar();
var_dump(isInstanceOfParent($sportsCar, 'Vehicle')); // bool(true)
var_dump(isInstanceOfParent($sportsCar, 'Car')); // bool(true)
var_dump(isInstanceOfParent($sportsCar, 'Animal')); // bool(false)
?>
is_a () သည် အရာဝတ်ထုတစ်ခုသည်လူတန်းစားသို့မဟုတ်ယင်း၏ subclass တစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်တိကျသောနည်းလမ်းဖြစ်သည်။ တိုက်ရိုက်ဆုံးဖြတ်ချက်ချရန်သင့်တော်သည်။
Get_Parent_Class () သည်အတန်း၏မိဘအတန်းအစားသတင်းအချက်အလက်များကိုရယူရန်အတွက်သင့်တော်ပြီးပိုမိုရှုပ်ထွေးသောအမွေဆက်ခံမှုကိုထုတ်ဖော်ပြောဆိုရန်အသုံးပြုနိုင်သည်။
ဖြစ်နိုင်ချေအများစုအတွက် is_a () ကို အသုံးပြုခြင်းသည်အလုံအလောက်ရိုးရိုးရှင်းရှင်းနှင့်ထိရောက်မှုရှိသည်။
Get_parent_Class () ကိုပေါင်းစပ်ခြင်းသည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်အမွေဆက်ခံမှုအမွေဆက်ခံမှုဆိုင်ရာတရားစီရင်ခြင်းဆိုင်ရာတရားစီရင်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုရရှိနိုင်သည်။
ဤလုပ်ဆောင်ချက်နှစ်ခုကိုကျွမ်းကျင်စေခြင်းကသင့်အားပိုမိုကောင်းမွန်သောထိန်းချုပ်မှုကိုအထောက်အကူပြုပြီးအရာဝတ်ထုများ၏ 0 င်ငွေနှင့်အမွေကိုစစ်ဆေးပြီးစစ်ဆေးရန်နှင့်သင်၏ကုဒ်၏ကြံ့ခိုင်မှုနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေသည်။