PHP အစီအစဉ်များကိုရေးဆွဲသည့်အခါလိုအပ်သော configurations အချို့, ဒေတာသို့မဟုတ်အစိတ်အပိုင်းများကိုအစပျိုးရန် init function များကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ Init function ကိုများသောအားဖြင့်စီမံကိန်း၏ startup အစိတ်အပိုင်းတွင်အသုံးပြုလေ့ရှိသောကြောင့်သတ်မှတ်ချက်များသည်အလွန်အရေးကြီးသည်။ မမှန်ကန်ကြောင်းမှားယွင်းသော parametersters ဖြတ်သန်းခြင်းသည်မသင့်တော်သောအမှားများကိုဖြစ်ပေါ်စေပြီးပရိုဂရမ်၏ပုံမှန်လည်ပတ်မှုကိုအကျိုးသက်ရောက်နိုင်သည်။ ဒီတော့ init function ကိုအသုံးပြုတဲ့အခါမှာအမှားအယွင်းများဖြတ်သန်းသွားတဲ့ parameter လုပ်ထားတဲ့ parameter သည်အဘယ်အရာဖြစ်သနည်း။ ဤပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပုံ? ဤဆောင်းပါးသည်၎င်းကိုသင့်အတွက်အသေးစိတ်လေ့လာလိမ့်မည်။
များစွာသောလုပ်ဆောင်ချက်များကို ( inst functions အပါအ 0 င်) ကြိုတင်သတ်မှတ်ထားသော parameter အမိန့်ရှိသည်။ parameters တွေကိုဖြတ်သန်းတဲ့အခါမှာအမှာစာမှားနေရင် function ကိုလိုအပ်တဲ့အချက်အလက်တွေကိုမှန်ကန်စွာရဖို့ပျက်ကွက်စေနိုင်တယ်။
function init($config, $user) {
// ကန ဦး ကုဒ်
}
$config = ['theme' => 'dark', 'language' => 'en'];
$user = ['name' => 'John', 'email' => '[email protected]'];
// မမှန်ကန်သော parameter သည်အမိန့်
init($user, $config);
အပေါ်ကဥပမာမှာကျွန်တော်တို့ဟာ $ user user နဲ့ config တွေကို မှားယွင်းစွာကျော်ဖြတ်နိုင်ခဲ့တယ်။ Init function ကိုဒီ parameters တွေကိုနိုင်ရန်အတွက်လိုအပ်လိမ့်မည်။
function ကိုမှဖြတ်သန်းသွားသော parameters တွေကိုအမိန့်သည် function ကိုသတ်မှတ်သည့်အခါအမှာစာနှင့်ကိုက်ညီကြောင်းသေချာပါစေ။ သင်မသေချာပါက PHP ၏ Func_get_Anggs () မှတဆင့် parameters တွေကို debug လုပ်နိုင်သည်။
အခြားဘုံအမှားတစ်ခုမှာ parameter သည် marameter type mismatch ဖြစ်သည်။ ဥပမာအားဖြင့်လုပ်ဆောင်ချက်တစ်ခုသည် array တစ်ခုအနေဖြင့်အငြင်းပွားမှုတစ်ခုအဖြစ်မျှော်လင့်သော်လည်းအမှန်တကယ် string ကိုဖြတ်သန်းသွားသော်,
function init($config, $user) {
// ကန ဦး ကုဒ်
}
$config = 'invalid config'; // အမျိုးအစားမှားအမျိုးအစား
$user = ['name' => 'John', 'email' => '[email protected]'];
init($config, $user);
အထက်ပါကုဒ်များတွင် ဒေါ်လာ config တစ်ခုသည် ခင်းကျင်းဖြစ်သင့်သည်။ String ကိုမလုပ်ဆောင်နိုင်သည့်အတွက် Init function သည်အမှားတစ်ခုဖြစ်နိုင်သည်။
တင်းကျပ်သော parametery type စစ်ဆေးခြင်းနှင့်ဤအမှားကိုရှောင်ပါ။ PHP 7 နှင့်အထက်တွင်မှန်ကန်သော parameter type အမျိုးအစားကိုသေချာစေရန်အမျိုးအစားကြေငြာချက်များကိုသုံးနိုင်သည်။
function init(array $config, array $user) {
// ကန ဦး ကုဒ်
}
အကယ်. အမှားအယွင်းတစ်ခုအငြင်းအခုံတွင်အငြင်းအခုံဖြစ်လျှင် PHP သည်အမျိုးအစားအမှားတစ်ခုပြုလုပ်လိမ့်မည်။
အကယ်. Init function တွင်လိုအပ်သော parameters အချို့ရှိလျှင်၎င်းတို့ကိုခေါ်သည့်အခါ၎င်းတို့ကိုမလွန်ပါက၎င်းသည် runtime အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။ မူလတန်ဖိုးကိုသတ်မှတ်နိုင်သော်လည်းအမှားအယွင်းများသည်သင့်လျော်စွာစစ်ဆေးခြင်းမရှိဘဲပေါ်ပေါက်လာလေ့ရှိသည်။
function init($config, $user, $url) {
// ကန ဦး ကုဒ်
}
$config = ['theme' => 'dark', 'language' => 'en'];
$user = ['name' => 'John', 'email' => '[email protected]'];
init($config, $user); // မလုံမလောက်မှု url တေးရေး
ဒီဥပမာမှာ URL parameter ကိုမလွန်ပါဘူး။ ဒါပေမယ့် Init function ကိုလိုအပ်ပါတယ်။ ၎င်းသည်အမှားတစ်ခုဖြစ်စေနိုင်သည်သို့မဟုတ် function ကိုစနစ်တကျအလုပ်မလုပ်ပါ။
parameters တွေကို function အတွင်းမှာလုံးလုံးလျားလျားဖြတ်သန်းသွားမလားဆိုတာကိုစစ်ဆေးပါ, ဒါမှမဟုတ် function ကိုပုံမှန်လည်ပတ်နိုင်အောင်ပုံမှန်တန်ဖိုးများကိုသုံးပါ။
function init($config, $user, $url = 'https://gitbox.net/default-url') {
// ကန ဦး ကုဒ်
}
တစ်ခါတစ်ရံတွင် developer များသည် null values ( null or " ကဲ့သို့သောတန်ဖိုးများကိုမတော်တဆထုတ်လွှင့်နိုင်သည် ။
function init($config, $user, $url) {
// ကန ဦး ကုဒ်
}
$config = null; // မမှန်ကန်သော configuration ကို
$user = ['name' => 'John', 'email' => '[email protected]'];
$url = 'https://gitbox.net/api';
init($config, $user, $url);
ဤဥပမာတွင် GIT function သို့သွားသော $ config သည် null ဖြစ်သည်။ မှန်ကန်သောပြင်ဆင်မှုမရှိသောကြောင့် function သည်ပျက်ကွက်လိမ့်မည်။
parameters တွေကိုအချည်းနှီးဖြစ်စေ, မမှန်ကန်ကြောင်းသေချာစေရန်ခြွင်းချက်အခြေအနေကိုသုံးပါ။ အကယ်. parameter သည်မမှန်ကန်ပါကသင်သည်ဖော်ရွေသောအချက်ကိုပေးနိုင်သည်သို့မဟုတ်ပုံမှန်တန်ဖိုးကိုသုံးနိုင်သည်။
function init($config, $user, $url) {
if (empty($config)) {
throw new InvalidArgumentException('Config cannot be empty.');
}
// ပုံမှန်စတင်ခြင်း
}