လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Parent Class အမျိုးအစားကိုဆုံးဖြတ်ရန် is_a () နှင့် get_parent_class () ကိုသုံးပါ

Parent Class အမျိုးအစားကိုဆုံးဖြတ်ရန် is_a () နှင့် get_parent_class () ကိုသုံးပါ

M66 2025-05-26

Object-Oriented Programming (oop) သည် PHP ၏အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ အရာဝတ်ထုတစ်ခုသည်အချို့သောလူတန်းစားတစ် ဦး သို့မဟုတ်၎င်း၏မိဘအတန်းအစားနှင့်သက်ဆိုင်ခြင်းရှိမရှိဆုံးဖြတ်ခြင်းသည်နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ဘုံလိုအပ်ချက်ဖြစ်သည်။ PHP သည် ဤလုပ်ဆောင်မှုကိုရရှိရန်အတွက်အလွန်လက်တွေ့ကျသော built-in functions နှစ်ခုကိုထောက်ပံ့ပေးသည် ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခု၏အသုံးပြုမှုကိုအသေးစိတ်ဖော်ပြရန်နှင့်အရာဝတ်ထုသည်အချို့သောမိဘအတန်းအစားသို့မဟုတ်အမွေပေးစနစ်နှင့်သက်ဆိုင်သည်ကိုမည်သို့ဆုံးဖြတ်ရမည်ကိုဥပမာအားဖြင့်ပြသမည်။

1 ။ is_a () function ကိုမိတ်ဆက်

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)
?>

အထက်ပါဥပမာတွင် ဒေါ်လာခွေးသည် ခွေး အတန်း အစား၏ဥပမာတစ်ခုဖြစ်ပြီး ခွေး သည် တိရစ္ဆာန် အမျိုးအစား ခွဲတစ်ခုဖြစ်သည်။

2 ။ get_parent_class () function ကိုမိတ်ဆက်ပါ

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
?>

3 ။ ပေါင်းစပ်အသုံးပြုမှုဥပမာ - အရာဝတ်ထုသည်အချို့သောအမွေတစ်ခု၏ပိုင်ဆိုင်မှုရှိမရှိဆုံးဖြတ်ပါ

အရာဝတ်ထုတစ်ခုသည် ယာဉ်တန်းတစ်ခု သို့မဟုတ်၎င်း၏ 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)
?>

4 ။ အကျဉ်းချုပ်

  • is_a () သည် အရာဝတ်ထုတစ်ခုသည်လူတန်းစားသို့မဟုတ်ယင်း၏ subclass တစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်တိကျသောနည်းလမ်းဖြစ်သည်။ တိုက်ရိုက်ဆုံးဖြတ်ချက်ချရန်သင့်တော်သည်။

  • Get_Parent_Class () သည်အတန်း၏မိဘအတန်းအစားသတင်းအချက်အလက်များကိုရယူရန်အတွက်သင့်တော်ပြီးပိုမိုရှုပ်ထွေးသောအမွေဆက်ခံမှုကိုထုတ်ဖော်ပြောဆိုရန်အသုံးပြုနိုင်သည်။

  • ဖြစ်နိုင်ချေအများစုအတွက် is_a () ကို အသုံးပြုခြင်းသည်အလုံအလောက်ရိုးရိုးရှင်းရှင်းနှင့်ထိရောက်မှုရှိသည်။

  • Get_parent_Class () ကိုပေါင်းစပ်ခြင်းသည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်အမွေဆက်ခံမှုအမွေဆက်ခံမှုဆိုင်ရာတရားစီရင်ခြင်းဆိုင်ရာတရားစီရင်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုရရှိနိုင်သည်။

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