Object-Orient-Oriented PHP applications များကိုတီထွင်သည့်အခါကျွန်ုပ်တို့သည်၎င်းတို့သည်တန်းတူဖြစ်စေဆုံးဖြတ်ခြင်းကဲ့သို့သောအရာဝတ်ထုနှစ်ခုကိုနှိုင်းယှဉ်ရန်လိုသည်။ ဤဆောင်းပါးသည် PHP တွင်အရာဝတ်ထုနှိုင်းယှဉ်မှုကိုမည်သို့လုပ်ဆောင်ရမည်ကိုလေ့လာလိမ့်မည်။
PHP သည် object များကို ==, ==, ==, ==, ==, objects ၏ attribute တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်းအတွက်အော်ပရေတာအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ ==,
ဘုံနှိုင်းယှဉ်အော်ပရေတာများတွင်:
==
အထက်ဖော်ပြပါဥပမာတွင် attribute တန်ဖိုးများကို ubj1 နှင့် $ obj2 အတူတူပင်ဖြစ်သည့်အတွက် "အရာဝတ်ထုနှစ်ခုသည်တန်းတူဖြစ်သည်"
! = အော်ပရေတာသည် == 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 တန်ဖိုးများသည်တန်းတူမဟုတ်ပါ"
=== operator များသည်အရာဝတ်ထုနှစ်ခုသည်တူညီသောအရာဝတ်ထုတစ်ခုတည်းသောအရာဝတ်ထုတစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ အကယ်. ၎င်းသည်တူညီသောအရာဝတ်ထုဖြစ်ပါက စစ်မှန်ပါ ။
$obj1 = new stdClass();
$obj2 = $obj1;
if ($obj1 === $obj2) {
echo 'နှစ်ခုအရာဝတ်ထုတူညီတဲ့အရာဝတ်ထုဖြစ်ကြသည်';
} else {
echo 'နှစ်ခုအရာဝတ်ထုတူညီသောအရာဝတ်ထုမဟုတ်ပါဘူး';
}
ဒီဥပမာမှာ $ Obj2 Obj2 ရဲ့ Memory address ကိုတိုက်ရိုက်ရမှတ်ရတဲ့အတွက် Output ဟာ "အရာဝတ်ထုနှစ်ခုဟာတူညီတဲ့အရာဝတ်ထုတစ်ခုပဲ။
အဆိုပါ ! == အော်ပရေတာသည် === operator သို့အချိုးကျသည်, အရာဝတ်ထုနှစ်ခုသည်တူညီသောအရာဝတ်ထုမဟုတ်ကြောင်းဆုံးဖြတ်ရန်အသုံးပြုသည်။ ကွဲပြားခြားနားသောမှတ်ဥာဏ်လိပ်စာများကိုအရာဝတ်ထုနှစ်ခုကိုညွှန်ပြပါက အရာ 0 တ် ထုနှစ်ခုကို အမှတ်အသား ပြုပါ။
$obj1 = new stdClass();
$obj2 = $obj1;
$obj3 = new stdClass();
if ($obj1 !== $obj3) {
echo 'နှစ်ခုအရာဝတ်ထုတူညီသောအရာဝတ်ထုမဟုတ်ပါဘူး';
} else {
echo 'နှစ်ခုအရာဝတ်ထုတူညီတဲ့အရာဝတ်ထုဖြစ်ကြသည်';
}
ဤဥပမာတွင် $ Obj1 နှင့် $ Obj3 သည်မတူညီသောမှတ်ဉာဏ်လိပ်စာများသို့ $ Obj3 အမှတ်တို့တွင် "အရာဝတ်ထုနှစ်ခုသည်တူညီသောအရာဝတ်ထုမဟုတ်ပါ" ဖြစ်သည်။
PHP သည်နှိုင်းယှဉ်ခြင်းအော်ပရေတာကို အသုံးပြု. အရာဝတ်ထုများကိုနှိုင်းယှဉ်ရန်အသုံးပြုသည့်အခါအရာဝတ်ထု၏ __TOSTRING () နည်းလမ်းသည်အရာဝတ်ထုကိုနှိုင်းယှဉ်မှုအတွက် string တစ်ခုအဖြစ်ပြောင်းလဲရန်အလိုအလျောက်တောင်းဆိုလိမ့်မည်။ အကယ်. အရာဝတ်ထုသည်ဤနည်းလမ်းကိုအကောင်အထည်မ 0 င်ပါက "Catchable Fatal Error" ၏အမှားတစ်ခုပစ်ချလိမ့်မည်။
ထို့ကြောင့်အရာဝတ်ထုနှိုင်းယှဉ်မှုကိုလုပ်ဆောင်သောအခါ __TOSTRING method () နည်းလမ်းကိုအရာဝတ်ထုကိုအကောင်အထည်ဖော်ရန်သေချာစေရန်အကြံပြုသည်။ သတိပြုသင့်သည်မှာ PHP သည်ပစ္စည်းများ၏ပိုင်ဆိုင်မှုတန်ဖိုးများကိုနည်းလမ်းများမဟုတ်ဘဲနည်းလမ်းများနှင့်နှိုင်းယှဉ်သည်။
ဤဆောင်းပါးသည် PHP ရှိအရာဝတ်ထုများကိုနှိုင်းယှဉ်ရန်နှင့်နှိုင်းယှဉ်လျှင်အမျိုးမျိုးသောအော်ပရေတာများကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးသည်။ အရာဝတ်ထုနှိုင်းယှဉ်မှုများပြုလုပ်သောအခါ developer များအနေဖြင့်အရာဝတ်ထု၏ပိုင်ဆိုင်မှုတန်ဖိုးများကိုဂရုပြုသင့်သည် ။