PHP ပရိုဂရမ်တွင်အရာတစ်ခုတွင်အရာဝတ်ထုတစ်ခုတွင် attribute တစ်ခုရှိမရှိဆုံးဖြတ်ရန်လိုအပ်သည့်အခြေအနေများကြုံတွေ့ရလေ့ရှိသည်။ ၎င်းကို ISSET () သို့မဟုတ် အိမ်ခြံမြေဝါဒီများအသုံးပြုခြင်းကိုအကဲဖြတ်ရန်အသုံးပြုနိုင်သော်လည်း () () ၏အပြုအမူသည်အထူးသဖြင့်အတန်း၏ဂုဏ်သတ္တိများကိုကိုင်တွယ်ရာတွင်နှစ်ခု၏အပြုအမူသည်အနည်းငယ်ကွဲပြားသည်။ ဤဆောင်းပါးသည်မည်သည့် ပိုင်ဆိုင်မှုဆိုင်ရာ 0 န်ကြီးချုပ်များ () function ကိုအသုံးပြုသည်ကို အသုံးပြု. အမှန်တကယ် applications များတွင်မည်သည့်အရာကိုသတိပြုရမည်ကိုအာရုံစိုက်မည်။
PHP တွင်အိမ်ခြံမြေ 0 န်ကြီးချုပ် () သည် PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှု၏တန်ဖိုးသည် တရားမ 0 င် လျှင်ပင်ပိုင်ဆိုင်မှုတည်ရှိမှုကိုမှန်ကန်စွာခွဲခြားသိမြင်နိုင်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool property_exists(object|string $object_or_class, string $property)
$ Object_or_Class : အရာဝတ်ထုဥပမာတစ်ခုသို့မဟုတ်အတန်းအစားအမည်တစ်ခုဖြစ်နိုင်သည်။
$ Property : Checked ခံရမည့်ပိုင်ဆိုင်မှု၏အမည်။
အ ရာဝတ်ထုတစ်ခုသည်ပစ္စည်းတစ်ခုရှိ, မရှိ ဆုံးဖြတ်ရန်မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
class User {
public $name;
private $email;
}
$user = new User();
var_dump(property_exists($user, 'name')); // ထုတ်လုပ်ခြင်း: bool(true)
var_dump(property_exists($user, 'email')); // ထုတ်လုပ်ခြင်း: bool(true)
var_dump(property_exists($user, 'age')); // ထုတ်လုပ်ခြင်း: bool(false)
သတိပြုသင့် သည် (ဤသို့သော အီးမေးလ် ကဲ့သို့) ပိုင်ဆိုင်မှုသည်ပုဂ္ဂလိကပိုင်ဖြစ်ပါက,
developer အတော်များများက is is developles () နှင့် property_exists () ကိုရှုပ်ထွေးစေလိမ့်မည်။ တကယ်တော့ခြားနားချက်ကတော့
ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုသတ်မှတ်ထားပြီးတန်ဖိုးသည် null မဟုတ်လျှင် is is is iset () သာ စစ်မှန်သော ပြန်လာလိမ့်မည်။
Property_exists () ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုသည်၎င်း၏တန်ဖိုးမည်သို့ပင်ရှိပါစေ,
ဥပမာ -
class Product {
public $price = null;
}
$product = new Product();
var_dump(isset($product->price)); // ထုတ်လုပ်ခြင်း: bool(false)
var_dump(property_exists($product, 'price')); // ထုတ်လုပ်ခြင်း: bool(true)
Property_exists () သည် static ဂုဏ်သတ္တိများနှင့်လည်းအလုပ်လုပ်သည် -
class Config {
public static $version = '1.0';
}
var_dump(property_exists('Config', 'version')); // ထုတ်လုပ်ခြင်း: bool(true)
အကယ်. သင်သည် class name တစ်ခုကို string တစ်ခု၏ပုံစံဖြင့်အသုံးပြုပါကအချို့သောရောင်ပြန်ဟပ်မှုသို့မဟုတ်အလိုအလျောက်မြင်ကွင်းများတွင်အလွန်လက်တွေ့ကျသည်ကိုသင်စစ်ဆေးနိုင်သည်ကိုသတိပြုပါ။
သင် stdclass ကို အသုံးပြုသောအခါသို့မဟုတ် dynamically property များထည့်သွင်းသောအခါ, Property_Exists () သည် တိကျစွာတရားစီရင်နိုင်သေးသည်။
$data = new stdClass();
$data->url = 'https://gitbox.net/api';
var_dump(property_exists($data, 'url')); // ထုတ်လုပ်ခြင်း: bool(true)
var_dump(property_exists($data, 'token')); // ထုတ်လုပ်ခြင်း: bool(false)
အကယ်. ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုသတ်မှတ်ခြင်းရှိမရှိကိုသင်သာဂရုစိုက်ပါက (တန်ဖိုးမည်သို့ပင်ရှိပါစေ) Property_Exists () ကို သုံးပါ။
အကယ်. သင်သည် attribute ကိုသတ်မှတ်ထားခြင်းမရှိ, NULL မဟုတ်ဘဲ NULL မရှိမရှိကိုစိုးရိမ်သည်ဆိုပါကအသုံးပြုပါ ။
PHP အပေါ်မှီခိုအားထားသည့် dynamic attribute တွေကိုရှောင်ရှားရန်ကြိုးစားပါ (PHP 8.2 ပြီးနောက် default disabled disabled) ကောင်းစွာသတ်မှတ်ထားသော attribute တွေကိုသုံးရန်အကြံပြုသည်။
Object-Oriented Design တွင်ပိုမိုရှုပ်ထွေးသောအိမ်ခြံမြေဆိုင်ရာခွဲခြမ်းစိတ်ဖြာခြင်း (ဥပမာအားဖြင့်) ရောင်ပြန် ဟပ်ခြင်း စသည့်ရောင်ပြန်ဟပ်မှုသင်တန်းများနှင့်ပေါင်းစပ်ခြင်းဖြင့်ပိုမိုရှုပ်ထွေးသောအိမ်ခြံမြေဆိုင်ရာခွဲခြမ်းစိတ်ဖြာခြင်းကိုပြုလုပ်နိုင်သည်။
PHP တွင်အထူးသဖြင့် Runtime တွင်အတန်းများသို့မဟုတ်အရာဝတ်ထုအဆောက်အအုံများကိုစစ်ဆေးရန်လိုအပ်သည့် dynamic starios များအတွက် PHP တွင်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ မည်သို့အလုပ်လုပ်သည်ကိုနားလည်ခြင်းနှင့်အသုံးပြုမှုသည်ပိုမိုခိုင်မာသည့်နှင့်ထိန်းသိမ်းနိုင်သောကုဒ်များကိုရေးရန်ကူညီနိုင်သည်။ နောက်တစ်ကြိမ်တွင်အိမ်ခြံမြေတစ်ခုရှိ, မရှိဆုံးဖြတ်ရန်လိုအပ်ကြောင်းသတိရပါ ။