GetTraceasString သည် PHP ချွင်းချက် အတန်းအစားတစ်ခုဖြစ်သည်။ ခြွင်းချက်တစ်ခုပစ်ချသောအခါ GetRaceAssString က ခြွင်းချက်သတင်းအချက်အလက်များ၏ string ကိုပုံစံကိုပြန်ပို့နိုင်သည်။ Stack Information သည် developer များတိကျသောတည်နေရာကိုခြေရာခံ။ အမှားအယွင်းများကိုခေါ်ဆိုရန်ကူညီနိုင်ပြီးပြ problems နာများကိုထပ်မံရှာဖွေတွေ့ရှိရန်ကူညီနိုင်သည်။
PHP တွင်ခြွင်းချက်ဖမ်းယူခြင်းသည်များသောအားဖြင့် စမ်းကြည့်ခြင်း အားဖြင့်အောင်မြင်သည်။ ခြွင်းချက်တစ်ခုကုဒ်ကိုပိတ်ပင်တားဆီးမှုဖြင့်ပစ်ချသောအခါ ဖမ်း ကြေညာချက်သည်ခြွင်းချက်အရာဝတ်ထုကိုဖမ်းလိမ့်မည်။ ထို့နောက်သင်သည်ခြွင်းချက်၏ stack သတင်းအချက်အလက် output ကို output လုပ်ဖို့ gettraceasstring function ကိုသုံးနိုင်သည်။
<?php
try {
// ခြွင်းချက်တစ်ခု Simulate
throw new Exception("Something went wrong!");
} catch (Exception $e) {
// Get နှင့် output ကို stack သတင်းအချက်အလက်
echo "Exception Trace: " . $e->getTraceAsString();
}
?>
အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည် ပစ်ချ ချက်ကိုမှတစ်ဆင့်ခြွင်းချက်တစ်ခုကိုကိုယ်တိုင်ချမှတ်ပြီးချွင်းချက်အရာဝတ်ထု $ e ကိုဖမ်းရန် ဖမ်းမိသည့် ကြေညာချက်ကိုသုံးပါ။ ထို့နောက်ချွင်းချက်၏ stack ၏ stack သတင်းအချက်အလက်ကို $ e-> gettraceasString မှတဆင့် () ။
GetTraceasString သည် stack အချက်အလက်များကိုဖော်ပြသည့် string ကိုပြန်ပို့လိမ့်မည်။
#0 /path/to/script.php(10): someFunction()
#1 /path/to/another/script.php(15): anotherFunction()
#2 {main}
အကြောင်းအရာတစ်ခုစီသည် function path, line နံပါတ်နှင့် function call ၏ဆက်စပ်သတင်းအချက်အလက်များအပါအဝင် stack frame ကိုကိုယ်စားပြုသည်။ GetTraceasString သည် အောက်ခြေမှထိပ်မှထိပ်သို့အမိန့်အတွက်သက်ဆိုင်ရာ function ကိုခေါ်ဆိုမှုအားလုံးကိုစာရင်းပြုစုထားသည်။
# 0 သည် ခြွင်းချက်များဖြစ်ပေါ်သည့်နေရာအနှံ့တွင်အနက်ရှိုင်းဆုံးလုပ်ဆောင်ချက်ခေါ်ဆိုမှုကိုကိုယ်စားပြုသည်။
# 1 , # 2 စသည်ဖြင့်ဤခြွင်းချက်များကိုဖြတ်သန်းသွားသောကာလအတွင်းဖြတ်သန်းသွားသောခေါ်ဆိုမှုများဖြစ်သည်။
{Main} သည် အဓိကပရိုဂရမ်စီးဆင်းမှုကိုကိုယ်စားပြုသည်။
GetTraceasString ကို ပိုမိုနားလည်ရန်အတွက်အနည်းငယ်ရှုပ်ထွေးသောဥပမာတစ်ခုဖြင့်၎င်းကိုသရုပ်ပြကြပါစို့။
<?php
function thirdFunction() {
throw new Exception("An error occurred in thirdFunction.");
}
function secondFunction() {
thirdFunction();
}
function firstFunction() {
secondFunction();
}
try {
firstFunction();
} catch (Exception $e) {
echo "Caught exception: " . $e->getMessage() . "\n";
echo "Stack trace:\n" . $e->getTraceAsString();
}
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် function သုံးခုကိုသတ်မှတ်သည် - 4 င်းတို့၏ပထမ ဦး ဆုံးနေအိမ် , ဒုတိယဘာသာ နှင့် တတိယ အနေဖြင့် function တစ်ခုစီသည်နောက် function ကိုအလှည့်အပြောင်းတစ်ခုဟုခေါ်သည်။ နောက်ဆုံးအနေနဲ့ခြွင်းချက် တတိယသုံးလပတ် တွင်ပစ်ချသည်။ Catch မှတစ်ဆင့်အချည်းနှီးသောအနေဖြင့် ဒေါ်လာ e-gettraceasString () ကို ခေါ်ခြင်း () ကိုခေါ်ယူခြင်းသည်အောက်ပါနှင့်ဆင်တူသောအချက်အလက်များကိုထုတ်ဖော်ပြောဆိုခြင်းအားဖြင့်ထုတ်ပြန်ရန်
Caught exception: An error occurred in thirdFunction.
Stack trace:
#0 /path/to/script.php(7): thirdFunction()
#1 /path/to/script.php(11): secondFunction()
#2 /path/to/script.php(15): firstFunction()
#3 {main}
ဤအချက်အလက်မှတစ်ဆင့် developer များကပထမအမြင်ကဖော်ပြရန် ပထမအကြိမ် ခွဲခြားသတ်မှတ်ခြင်းမှတတိယအနေဖြင့် တတိယအနေဖြင့် တတိယအနေ ဖြင့် တတိယ အနေဖြင့်သုံးခုအရေးပေါ်အခြေအနေကိုရှင်းလင်းစွာတွေ့မြင်နိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်အပြင်းအထန်ထုတ်ပြန်သောသတင်းအချက်အလက်များကိုသာထုတ်လုပ်ရုံသာမကနောက်ပိုင်းခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်မှတ်တမ်းတင်ရန်လည်းလိုအပ်သည်။ PHP ၏သစ်ထုတ်လုပ်ရေးစွမ်းရည်များကိုပေါင်းစပ်ခြင်းဖြင့်ခြွင်းချက်များကို log files များသို့ log in ပြောင်းရွှေ့နိုင်သည်။
ဥပမာအားဖြင့်, ကျွန်ုပ်တို့သည်ခြွင်းချက်အချက်အလက်များကို log file သို့ရေးနိုင်သည်။
<?php
try {
firstFunction();
} catch (Exception $e) {
$logMessage = "Exception: " . $e->getMessage() . "\n" . "Stack trace: " . $e->getTraceAsString();
file_put_contents('error_log.txt', $logMessage, FILE_APPEND);
}
?>
GetTraceasString သည် PHP တွင်အလွန်လက်တွေ့ကျသောခြွင်းချက်ကိရိယာတစ်ခုဖြစ်သည်။ ခြွင်းချက်သည်လွယ်ကူစွာဖတ်ရှုနိုင်သောပုံစံဖြင့်ခြွင်းချက်တစ်ခုတွင်ဖြစ်ပေါ်သောအခါ၎င်းသည်အချက်အလက်များကိုသိုလှောင်နိုင်သည်။ ၎င်းသည်သင်၏ပရိုဂရမ်ရှိအမှားများကိုရှာဖွေခြင်းနှင့်ဖြေရှင်းခြင်းအတွက်အလွန်အထောက်အကူပြုသည်။ Try-catch ထုတ်ပြန်ချက်များနှင့် gettraceasString ကို ပေါင်းစပ်ခြင်းအားဖြင့် developer များသည်ပြ the နာကိုလျင်မြန်စွာရှာဖွေပြီးထိရောက်သော debugging နှင့်ပြုပြင်ခြင်းများကိုပြုလုပ်နိုင်သည်။