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

PHP အမှားကြောင့်ပြ issues နာများကိုလျစ်လျူရှုခြင်းကိုမည်သို့ရှောင်ရှားရမည်နည်း။

M66 2025-06-23

PHP အစီအစဉ်များကိုတီထွင်သောအခါအမှားများကိုလုံးဝရှောင်ရှား။ မရပါ။ Syntax အမှားများ, ယုတ္တိဗေဒအမှားအယွင်းများသို့မဟုတ် runtime အမှားများသည်ဖြစ်စေ, သို့သော်အမှားအယွင်းများ၏ဖြစ်ပျက်မှုသည်အစီအစဉ်ပျက်ကျခြင်းဟုမဆိုလိုပါ။ ကျိုးကြောင်းဆီလျော်သောအမှားကိုင်တွယ်ခြင်းသည် developer များကိုပိုမိုကောင်းမွန်သောဖမ်းမိနိုင်အောင်ကူညီနိုင်ပြီးအမှားအယွင်းများကိုစီမံခန့်ခွဲနိုင်သည်။ ဤဆောင်းပါးသည် PHP ရှိအမှားများကိုမှားယွင်းစွာကိုင်တွယ်ဖြေရှင်းနိုင်ပုံ နှင့် အလားအလာရှိသောပြ problems နာများကိုလျစ်လျူရှုခြင်းကိုရှောင်ရှားရန်ကြိုးစားခြင်းနှင့် စမ်းကြည့်ခြင်း ဖော်ပြချက်ဖြင့်မည်သို့ကိုင်တွယ်ရမည်ကိုလေ့လာပါမည်။

1 ။ အမှားအယွင်းများနှင့် PHP အမှားကိုင်တွယ်သည့်ယန္တရား

PHP မှအမှားအယွင်းများကို အမျိုးအစား နှစ်မျိုးခွဲခြားနိုင်သည် ဆိုးဝါးသောအမှားတစ်ခုသည်ပရိုဂရမ်၏ကွပ်မျက်မှုကိုနှောင့်ယှက်လိမ့်မည်။ PHP သည် e_warning နှင့် e_notice ကဲ့သို့သောဆိုးဝါးသောအမှားအယွင်းများအတွက် Code ကိုပုံမှန်အားဖြင့်ကွပ်မျက်ခြင်းကိုမရပ်တန့်ပါ, သို့သော်အမှားမှတ်တမ်းတွင်၎င်းကိုမှတ်တမ်းတင်ထားသည်။

ဤသည်ပုံမှန်အပြုအမူသည်ဖွံ့ဖြိုးရေးကာလအတွင်းပြ problems နာအချို့ကိုလျစ်လျူရှုခံထားရသောပြ problems နာအချို့ကိုဖြစ်ပေါ်စေသည်။ ဤကိစ္စတွင် developer များသည်အမှားတည်ရှိမှုကိုသတိမပြုမိဘဲအမှားအယွင်းများသို့မဟုတ်စွမ်းဆောင်ရည်ပြ issues နာများကိုလျစ်လျူရှုခြင်းခံရနိုင်သည်။

2 ။ နောက်ဆုံးအမှားမက်ဆေ့ခ်ျကိုရရန် error_get_last () ကို သုံးပါ

အမှား error_get_last () function က function ကိုလတ်တလောအမှားအချက်အလက်တွေပါတဲ့အပေါင်းအသင်းဆိုင်ရာခင်းကျင်းမှုကိုပြန်ပို့လိုက်တယ်။ ဤလုပ်ဆောင်ချက်သည် developer များက PHP scripts တွင်အမှားအယွင်းများကိုခြွင်းချက်မရှိစေနိုင်ပါ။

 <?php
// ကုဒ်ကိုမလုပ်ဆောင်မီ logged အမှားအယွင်းများကိုရှင်းလင်းပါ
error_clear_last();

// အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သောလုပ်ရပ်များပြုလုပ်ပါ
echo $undefined_variable;

// နောက်ဆုံးအမှားကိုရယူပါ
$error = error_get_last();
if ($error) {
    echo "Error type: " . $error['type'] . "<br>";
    echo "Error message: " . $error['message'] . "<br>";
}
?>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် e_notice အမျိုးအစားအမှားတစ်ခုကိုဖြစ်ပေါ်စေသော undefinate variable တစ်ခုကိုရယူရန်ကြိုးစားသည်။ Error_get_last () , ကျွန်ုပ်တို့သည်မှားယွင်းသောသတင်းအချက်အလက်များကိုဖမ်းယူနိုင်ပြီးသက်ဆိုင်ရာကိုင်တွယ်သောအစီအမံများကိုယူနိုင်သည်။

3 ။ Try-catch statement နှင့်အမှားကိုင်တွယ်

PHP ၏ Try-Catch Statement သည်ခြွင်းချက်များကိုဖမ်းရန်နှင့်ကိုင်တွယ်ရန်အသုံးပြုသည်။ ပရိုဂရမ်ကိုဖွင့်သောအခါခြွင်းချက်တစ်ခုဖြစ်ပေါ်လာသောအခါ struck code ပိတ်ပင်တားဆီးမှုပြတ်တောက်သွားပြီးခြွင်းချက်ကိုင်တွယ်ရန်အတွက်သက်ဆိုင်ရာ count code ပိတ်ပင်တားဆီးမှုသို့ခုန်ချလိမ့်မည်။ Try-Catch Statement သည်အစီအစဉ်ရှိယုတ္တိအမှားများကိုထိရောက်စွာဖမ်းနိုင်သည်။ သို့သော်၎င်းသည် E_Warning ကဲ့သို့သောအမှားအယွင်းများအားလုံးကိုမဖမ်းနိုင်ပါ။

ထို့ကြောင့် Error_get_last () ကို အသုံးပြုခြင်းဖြင့်နှစ် ဦး စလုံး၏အားနည်းချက်များကိုပြုလုပ်နိုင်သည်။ ချွင်းချက်သည် string stated statement block တွင်ဖြစ်ပေါ်သောအခါခြွင်းချက် ကိုဖမ်းမိ ခြင်းဖြင့်ဖမ်းမိနိုင်သည်။ Error_get_last () error_get_last () အမှားအချက်အလက်များကိုရိုက်ကူးရန်အတွက်အမှားအယွင်းများကိုသိမ်းဆည်းရန်အသုံးပြုသည်။

 <?php
// Custom Error အမှားလုပ်ဆောင်ချက်များကိုတည်ဆောက်ခြင်း
set_error_handler(function($errno, $errstr, $errfile, $errline) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
});

try {
    // ကုဒ်၏ကွပ်မျက်သည်ခြွင်းချက်တစ်ခုသို့မဟုတ်အမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်
    $result = 10 / 0;
} catch (Exception $e) {
    echo "Caught exception: " . $e->getMessage() . "<br>";
} catch (ErrorException $e) {
    echo "Caught error: " . $e->getMessage() . "<br>";
}

// အသုံးပြု error_get_last() နောက်ဆုံး non-fatal အမှားကိုဖမ်း
$error = error_get_last();
if ($error) {
    echo "Last error type: " . $error['type'] . "<br>";
    echo "Last error message: " . $error['message'] . "<br>";
}
?>

အထက်ပါကုဒ်တွင် set_error_handler မှတဆင့်စိတ်ကြိုက်အမှားကိုင်တွယ် function ကိုသတ်မှတ်သည်။ အမှားတစ်ခုဖြစ်ပေါ်လာ တဲ့အခါ ဒီ function ဟာ အမှားအယွင်း တစ်ခုဖြစ်ပြီး, တစ်ချိန်တည်းမှာပင်ကျွန်ုပ်တို့သည်ပရိုဂရမ်ကွပ်မျက်မှုကာလအတွင်းဖြစ်ပေါ်နိုင်သည့်ဆိုးဝါးသောအမှားအယွင်းများကိုဖမ်းယူရန် အမှားအယွင်းများကို အသုံးပြုသည်။

4 ။ အကောင်းဆုံးအလေ့အကျင့်ကိုင်တွယ်အမှား

4.1 သင့်လျော်သောအမှားအယွင်းကိုသုံးပါ

အလားအလာရှိသောအမှားများကိုလျစ်လျူရှုခြင်းမှရှောင်ရှားရန် developer များသည်စီမံကိန်း၏လိုအပ်ချက်များနှင့်အညီအမှားအစီရင်ခံခြင်းအဆင့်ကိုညှိသင့်သည်။ ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်တွင်အမှားအယွင်းအမျိုးအစားများကိုဖမ်းမိနိုင်ကြောင်းနှင့်အစီရင်ခံရန်သေချာစေရန် e_All အမှားအဆင့်ကို enable လုပ်ရန်အကြံပြုသည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုထိတွေ့ခြင်းကိုရှောင်ရှားရန်အမှားအယွင်းများကိုပိတ်ထားနိုင်သည်။

 // ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်အမှားအယွင်းများအားလုံးကိုဖွင့်ပါ
error_reporting(E_ALL);
ini_set('display_errors', 1);

// ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင် display error ကိုပိတ်ပါ
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
ini_set('display_errors', 0);

4.2 သစ်ထုတ်လုပ်ခြင်း

ဖွံ့ဖြိုးတိုးတက်မှုအဆင့်တွင်ဖြစ်စေ, သင့်တော်သောသစ်ထုတ်လုပ်ရေးယန္တရားကိုတည်ဆောက်ခြင်းအားဖြင့် developer များကနောက်ခံတွင်အလားအလာရှိသောပြ problems နာများကိုခြေရာခံနိုင်ပြီး၎င်းတို့အားအချိန်မီဖြေရှင်းနိုင်သည်။ PHP ၏ log file လမ်းကြောင်းကို Ini_set မှတဆင့် configure လုပ်နိုင်သည်။

 ini_set('log_errors', 1);
ini_set('error_log', '/path/to/php-error.log');

4.3 အမှားမှတ်တမ်းများကိုပုံမှန်ပြန်လည်သုံးသပ်ခြင်း

အမှားမှတ်တမ်းများကိုပုံမှန်စစ်ဆေးခြင်းသည်ပြ problems နာများကိုလျစ်လျူရှုခြင်းကိုရှောင်ရှားရန်အလေ့အကျင့်ကောင်းတစ်ခုဖြစ်သည်။ အမှားသည်အစီအစဉ်ကိုပျက်ပြားစေခြင်းသို့မဟုတ်ချက်ချင်းပြ problems နာများဖြစ်ပေါ်စေရန်သို့မဟုတ်ပြ problems နာများကိုချက်ချင်းဖြစ်ပေါ်စေခြင်းမပြုပါကပင်အချိန်ကြာမြင့်စွာစုဆောင်းထားသည့်အမှားများသည်လျှောက်လွှာ၏စွမ်းဆောင်ရည်သို့မဟုတ်တည်ငြိမ်မှုကိုသက်ရောက်နိုင်သည်။ မှတ်တမ်းဖိုင်များကိုပုံမှန်ပြန်လည်သုံးသပ်ခြင်းအားဖြင့် developer များကအလားအလာရှိသောအန္တရာယ်များကိုဖော်ထုတ်ပြီးအချိန်မီပြင်ဆင်နိုင်သည်။

5 ။ အကျဉ်းချုပ်

PHP သည်ကြွယ်ဝသောအမှားကိုင်တွယ်သည့်ယန္တရားများကိုထောက်ပံ့ပေးသည်။ Error_get_last () နှင့် try-catch တို့ကို ပေါင်းစပ်။ developer များသည်အမှားအယွင်းများကိုပိုမိုနားလည်သဘောပေါက်နိုင်ပြီးပြသနာများကိုပိုမိုနားလည်သဘောပေါက်နိုင်ပြီးကိုင်တွယ်နိုင်သည်။ ထို့အပြင်ဆင်ခြင်တုံတရားဆိုင်ရာအမှားအယွင်းများနှင့်သစ်ထုတ်လုပ်ခြင်းသည်ပြ problems နာများကိုအချိန်မီပြ problems နာများကိုရှာဖွေရန်,