PHP applications များကိုတီထွင်သည့်အခါကျွန်ုပ်တို့သည်တိုးချဲ့မှုအမျိုးမျိုးမှပေးသောကိန်းသားများကိုမကြာခဏသုံးလေ့ရှိသည်။ ဥပမာအားဖြင့်, curlopt_URL , curlinfo_http_code ကဲ့သို့သော curlopt_Url, curlinfo_http_code ကဲ့သို့သော conlopt_Url, curlinfo_http_code ကဲ့သို့သော Curlopt_Url, curlinfo_htttp_code စသည်တို့ကိုသုံးနိုင်သည်။ သို့သော်ကွဲပြားခြားနားသောဆာဗာပတ်ဝန်းကျင်တွင် PHP extensions များရှိနိုင်သည်။ အကယ်. ဤကိန်းဂဏန်းများကိုရှာဖွေတွေ့ရှိခြင်းမရှိဘဲတိုက်ရိုက်အသုံးပြုပါကသက်ဆိုင်ရာတိုးချဲ့ခြင်းကိုမဖွင့်ပါက "undefined condant" အမှားတစ်ခုကိုပစ်ချနိုင်သည်။
code ကိုအားဖြည့်စွက်ခြင်းနှင့်လိုက်ဖက်ခြင်းတို့ကိုတိုးတက်စေရန် PHP built-in function get_defined_constants () ကိုသုံးနိုင်သည်။
Get_Defined_constants () function သည် function ကိုလက်ရှိ script တွင်သတ်မှတ်ထားသောကိန်းဂဏန်းများအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုရရှိစေသည်။ အကယ်. parameter သည် မှန်ကန် ပါက PHP Kernel, extensions နှင့် USER-Defined Constants အပါအ 0 င်ခွဲခြားခြင်းဖြင့်အုပ်စုလိုက်အုပ်စုလိုက် multifenaal array ကိုပြန်လည်ရရှိခဲ့သည်။
Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array get_defined_constants ([ bool $categorize = false ] )
အောက်ပါကုဒ်များသည် curlopt_URL ကိုသတ်မှတ်မည်ကိုမည်သို့စစ်ဆေးရမည်ကိုပြသသည်။
<?php
$constants = get_defined_constants(true);
if (isset($constants['curl']) && array_key_exists('CURLOPT_URL', $constants['curl'])) {
echo "CURLOPT_URL သတ်မှတ်,လုံခြုံစွာအသုံးပြုနိုင်ပါသည်。";
} else {
echo "CURLOPT_URL undefined,ကျေးဇူးပြု. စစ်ဆေးပါcurlတိုးချဲ့。";
}
ဤ ကုဒ်သည်သက်တမ်းတိုးခြင်းဖြင့်အုပ်စုလိုက်အုပ်စုဖွဲ့သောကိန်းဂဏန်းများကို ဦး စွာရရှိသည် ။
တစ်ချိန်တည်းတွင်မျိုးစုံရှိသလားဆိုပါကသင်ရှာဖွေရန်လိုကောင်းလိုလိမ့်မည်။ အထက်ပါယုတ္တိဗေဒကိုအောက်ပါအတိုင်းတိုးချဲ့နိုင်သည် -
<?php
$required_constants = ['CURLOPT_URL', 'CURLOPT_RETURNTRANSFER', 'CURLOPT_TIMEOUT'];
$constants = get_defined_constants(true);
$missing = [];
foreach ($required_constants as $const) {
if (!isset($constants['curl'][$const])) {
$missing[] = $const;
}
}
if (empty($missing)) {
echo "အားလုံးလိုအပ်သည်curlမြဲစဲှ都သတ်မှတ်。";
} else {
echo "အောက်ပါပျောက်ဆုံးနေသည်curlမြဲစဲှ:" . implode(', ', $missing);
}
ကွဲပြားခြားနားသောဖောက်သည်များအတွက် PHP စနစ်တစ်ခုကိုသင်ဖြန့်ချိနေသည်ဟုမြင်ယောင်ကြည့်ပါ။ ကိန်းရှင်များမရှိခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားနိုင်ရန်အတွက်သီးခြားစစ်ဆေးမှုကိုသင်အသုံးမပြုမီသင်စည်းလုံးညီညွတ်စွာပြုလုပ်နိုင်သည်။
<?php
function is_constant_defined($extension, $constant_name) {
$constants = get_defined_constants(true);
return isset($constants[$extension][$constant_name]);
}
if (is_constant_defined('curl', 'CURLOPT_USERAGENT')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'MyAgent/1.0');
curl_setopt($ch, CURLOPT_URL, 'https://m66.net/api/test');
curl_exec($ch);
curl_close($ch);
} else {
echo "လက်ရှိပတ်ဝန်းကျင်ကအဲဒါကိုမထောက်ခံပါဘူးCURLOPT_USERAGENT";
}
အထက်ပါကုဒ်သည်အမြဲတမ်းရှာဖွေတွေ့ရှိသည့်ယုတ္တိဗေဒရှင်းလင်းရေးနှင့်ပိုမိုအဆင်ပြေစေရန် encapsulation function is_constant_defined ကို အသုံးပြုသည်။
လက်ရှိပတ်ဝန်းကျင်ရှိ extension တစ်ခု၏ extension တစ်ခုဖြစ်ခြင်းရှိမရှိကိုထိရောက်စွာစစ်ဆေးရန် Get_Defined_constants (Trust) ကိုထိရောက်စွာစစ်ဆေးပါ။ အခြေခံအဆောက်အအုံအဖွဲ့တစ်ဖွဲ့ဖြန့်ကျက်မှုသို့မဟုတ်တိုးချဲ့ထားသောဗားရှင်းမွမ်းမံမှုများကြောင့်ဖြစ်ပေါ်လာသောအပြောင်းအလဲများသည်ဖြစ်စေ runtime အမှားများကိုဤနည်းဖြင့်ရှောင်ရှားနိုင်သည်။