လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ရှိအရာဝတ်ထုများကိုမည်သို့နှိုင်းယှဉ်မည်နည်း - ကွဲပြားခြားနားသောနှိုင်းယှဉ်အော်ပရေတာများ၏အသေးစိတ်ကိုရှင်းပြပါ

PHP ရှိအရာဝတ်ထုများကိုမည်သို့နှိုင်းယှဉ်မည်နည်း - ကွဲပြားခြားနားသောနှိုင်းယှဉ်အော်ပရေတာများ၏အသေးစိတ်ကိုရှင်းပြပါ

gitbox 2025-06-17

1 ။ နိဒါန်း

Object-Orient-Oriented PHP applications များကိုတီထွင်သည့်အခါကျွန်ုပ်တို့သည်၎င်းတို့သည်တန်းတူဖြစ်စေဆုံးဖြတ်ခြင်းကဲ့သို့သောအရာဝတ်ထုနှစ်ခုကိုနှိုင်းယှဉ်ရန်လိုသည်။ ဤဆောင်းပါးသည် PHP တွင်အရာဝတ်ထုနှိုင်းယှဉ်မှုကိုမည်သို့လုပ်ဆောင်ရမည်ကိုလေ့လာလိမ့်မည်။

2 ။ PHP တွင်အရာဝတ်ထုများ၏နှိုင်းယှဉ်

PHP သည် object များကို ==, ==, ==, ==, ==, objects ၏ attribute တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်းအတွက်အော်ပရေတာအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ ==,

ဘုံနှိုင်းယှဉ်အော်ပရေတာများတွင်:

  • ==

    အထက်ဖော်ပြပါဥပမာတွင် attribute တန်ဖိုးများကို ubj1 နှင့် $ obj2 အတူတူပင်ဖြစ်သည့်အတွက် "အရာဝတ်ထုနှစ်ခုသည်တန်းတူဖြစ်သည်"

    2.2! = အော်ပရေတာ

    ! = အော်ပရေတာသည် == function နှင့်ဆန့်ကျင်ဘက်ဖြစ်ပြီးအရာဝတ်ထုနှစ်ခု၏ attribute တန်ဖိုးများကိုတန်းတူမဟုတ်ဆုံးဖြတ်ရန်အသုံးပြုသည်။ attribute တန်ဖိုးများ တန်းတူ မဟုတ်လျှင် စစ်မှန်သော ပြန်လာပါက,

     
    $obj1 = new stdClass();
    $obj2 = new stdClass();
    $obj1->name = 'Zhang San';
    $obj1->age = 20;
    $obj2->name = 'li si';
    $obj2->age = 30;
    if ($obj1 != $obj2) {
        echo 'နှစ်ခုအရာဝတ်ထု၏ attribute တန်ဖိုးများတန်းတူမဟုတ်ကြဘူး';
    } else {
        echo 'နှစ်ခုအရာဝတ်ထု၏ attribute တန်ဖိုးများတန်းတူဖြစ်ကြသည်';
    }
    

    ဤဥပမာတွင် attribute တန်ဖိုးများကို OBJ1 နှင့် $ OBJ2 ကွဲပြားခြားနားသောကြောင့် "အရာဝတ်ထုနှစ်ခု၏ attribute တန်ဖိုးများသည်တန်းတူမဟုတ်ပါ"

    2.3 === အော်ပရေတာ

    === operator များသည်အရာဝတ်ထုနှစ်ခုသည်တူညီသောအရာဝတ်ထုတစ်ခုတည်းသောအရာဝတ်ထုတစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ အကယ်. ၎င်းသည်တူညီသောအရာဝတ်ထုဖြစ်ပါက စစ်မှန်ပါ

     
    $obj1 = new stdClass();
    $obj2 = $obj1;
    if ($obj1 === $obj2) {
        echo 'နှစ်ခုအရာဝတ်ထုတူညီတဲ့အရာဝတ်ထုဖြစ်ကြသည်';
    } else {
        echo 'နှစ်ခုအရာဝတ်ထုတူညီသောအရာဝတ်ထုမဟုတ်ပါဘူး';
    }
    

    ဒီဥပမာမှာ $ Obj2 Obj2 ရဲ့ Memory address ကိုတိုက်ရိုက်ရမှတ်ရတဲ့အတွက် Output ဟာ "အရာဝတ်ထုနှစ်ခုဟာတူညီတဲ့အရာဝတ်ထုတစ်ခုပဲ။

    2.4! == အော်ပရေတာ

    အဆိုပါ ! == အော်ပရေတာသည် === operator သို့အချိုးကျသည်, အရာဝတ်ထုနှစ်ခုသည်တူညီသောအရာဝတ်ထုမဟုတ်ကြောင်းဆုံးဖြတ်ရန်အသုံးပြုသည်။ ကွဲပြားခြားနားသောမှတ်ဥာဏ်လိပ်စာများကိုအရာဝတ်ထုနှစ်ခုကိုညွှန်ပြပါက အရာ 0 တ် ထုနှစ်ခုကို အမှတ်အသား ပြုပါ။

     
    $obj1 = new stdClass();
    $obj2 = $obj1;
    $obj3 = new stdClass();
    if ($obj1 !== $obj3) {
        echo 'နှစ်ခုအရာဝတ်ထုတူညီသောအရာဝတ်ထုမဟုတ်ပါဘူး';
    } else {
        echo 'နှစ်ခုအရာဝတ်ထုတူညီတဲ့အရာဝတ်ထုဖြစ်ကြသည်';
    }
    

    ဤဥပမာတွင် $ Obj1 နှင့် $ Obj3 သည်မတူညီသောမှတ်ဉာဏ်လိပ်စာများသို့ $ Obj3 အမှတ်တို့တွင် "အရာဝတ်ထုနှစ်ခုသည်တူညီသောအရာဝတ်ထုမဟုတ်ပါ" ဖြစ်သည်။

    3 ။ အရာဝတ်ထုနှိုင်းယှဉ်၏နိယာမ

    PHP သည်နှိုင်းယှဉ်ခြင်းအော်ပရေတာကို အသုံးပြု. အရာဝတ်ထုများကိုနှိုင်းယှဉ်ရန်အသုံးပြုသည့်အခါအရာဝတ်ထု၏ __TOSTRING () နည်းလမ်းသည်အရာဝတ်ထုကိုနှိုင်းယှဉ်မှုအတွက် string တစ်ခုအဖြစ်ပြောင်းလဲရန်အလိုအလျောက်တောင်းဆိုလိမ့်မည်။ အကယ်. အရာဝတ်ထုသည်ဤနည်းလမ်းကိုအကောင်အထည်မ 0 င်ပါက "Catchable Fatal Error" ၏အမှားတစ်ခုပစ်ချလိမ့်မည်။

    ထို့ကြောင့်အရာဝတ်ထုနှိုင်းယှဉ်မှုကိုလုပ်ဆောင်သောအခါ __TOSTRING method () နည်းလမ်းကိုအရာဝတ်ထုကိုအကောင်အထည်ဖော်ရန်သေချာစေရန်အကြံပြုသည်။ သတိပြုသင့်သည်မှာ PHP သည်ပစ္စည်းများ၏ပိုင်ဆိုင်မှုတန်ဖိုးများကိုနည်းလမ်းများမဟုတ်ဘဲနည်းလမ်းများနှင့်နှိုင်းယှဉ်သည်။

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

    ဤဆောင်းပါးသည် PHP ရှိအရာဝတ်ထုများကိုနှိုင်းယှဉ်ရန်နှင့်နှိုင်းယှဉ်လျှင်အမျိုးမျိုးသောအော်ပရေတာများကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးသည်။ အရာဝတ်ထုနှိုင်းယှဉ်မှုများပြုလုပ်သောအခါ developer များအနေဖြင့်အရာဝတ်ထု၏ပိုင်ဆိုင်မှုတန်ဖိုးများကိုဂရုပြုသင့်သည်