လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> သက်တမ်းတိုးသက်တမ်းကိုသတ်မှတ်ခြင်းရှိမရှိစစ်ဆေးပါ

သက်တမ်းတိုးသက်တမ်းကိုသတ်မှတ်ခြင်းရှိမရှိစစ်ဆေးပါ

M66 2025-05-18

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 ()?

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 ] )

ဥပမာ - curl extension စဉ်ဆက်မပြတ်တည်ရှိခြင်းရှိမရှိကိုစစ်ဆေးပါ

အောက်ပါကုဒ်များသည် 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တိုးချဲ့。";
}

ကုဒ်သည်သက်တမ်းတိုးခြင်းဖြင့်အုပ်စုလိုက်အုပ်စုဖွဲ့သောကိန်းဂဏန်းများကို ဦး စွာရရှိသည်

မျိုးစုံမျိုးစုံ detect dynamicy detect

တစ်ချိန်တည်းတွင်မျိုးစုံရှိသလားဆိုပါကသင်ရှာဖွေရန်လိုကောင်းလိုလိမ့်မည်။ အထက်ပါယုတ္တိဗေဒကိုအောက်ပါအတိုင်းတိုးချဲ့နိုင်သည် -

 <?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);
}

လျှောက်လွှာဇာတ်လမ်း - ကွဲပြားခြားနားသော operating ပတ်ဝန်းကျင်နှင့်လိုက်လျောညီထွေဖြစ်အောင်

ကွဲပြားခြားနားသောဖောက်သည်များအတွက် 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 အမှားများကိုဤနည်းဖြင့်ရှောင်ရှားနိုင်သည်။