PHP တွင် session_register_shutdown () function ကို အသုံးပြု. session တစ်ခုပိတ်ထားသည့်အခါ consback function ကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ session တစ်ခုကွပ်မျက်မှုအဆုံးမှာ session ကိုကယ်တင်ခြင်းနှင့်မှန်ကန်စွာပိတ်ထားနိုင်သည်။ သို့သော် developer အများအပြားသည် function မကွပ်မျက်ခံရသည့်အခြေအနေများနှင့်ကြုံတွေ့ရမည့်အခြေအနေများနှင့်ကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်ဤပြ issue နာကိုအာရုံစိုက်မည်ဖြစ်ပြီးဖြစ်နိုင်ချေရှိသောအဖြစ်အပျက်ငါးခုကိုခွဲခြမ်းစိတ်ဖြာပါက PHP code နမူနာများနှင့် တွဲဖက်. ရှင်းပြပါလိမ့်မည်။
Session_register_shutdown () function ကို PHP 5.4.0 ကတည်းကမိတ်ဆက်ခဲ့သည်။ အကယ်. သင်သည် PHP ဗားရှင်းကို 5.4 အောက်ရှိ PHP ဗားရှင်းကိုအသုံးပြုနေပါက function သည်လုံးဝမတည်ရှိနိုင်ပါ။ ၎င်းကိုခေါ်ဆိုခြင်းသည်သဘာဝကျကျအကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ။
<?php
// PHPဗားရှင်းတရားစီရင်ရာ
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
echo "ယခုPHPမူကွဲကိုမပံ့ပိုးပါsession_register_shutdown()လုပ်ဆောင်ချက်。";
}
?>
PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်သို့မဟုတ်လိုက်ဖက်သော session စီမံခန့်ခွဲမှုနည်းလမ်းကိုချမှတ်ရန်အကြံပြုသည်။
Session_register_shutdown () session ကိုစတင်ပြီးနောက် callback function ကိုမှတ်ပုံတင်ရမည် ( Session_Start () )) ။ အကယ်. သင်ခန်းစာမဖွင့်ပါကမှတ်ပုံတင်ခြင်းသည်အကျိုးသက်ရောက်မည်မဟုတ်ပါ။
<?php
session_start(); // အဆိုပါ session ကိုပထမ ဦး ဆုံးစတင်ရမည်ဖြစ်သည်
session_register_shutdown(function() {
// ဤနေရာတွင် session ကိုပိတ်ထားသည့်အခါဖျော်ဖြေခံရဖို့အရေးယူဆောင်ရွက်မှုဖြစ်ပါတယ်
error_log("Sessionရုပ်သိမ်းခြင်း,callbacks execute");
});
?>
session_start () ကို function ကိုမှတ်ပုံတင်ခြင်းမပြုမီဟုခေါ်ပါ။
session_register_shutdown () parameters တွေကိုမပါဘဲ callback function ကိုလက်ခံသည်။ အကယ်. 0 င်လာသည့် callback function parameters များသည်လိုအပ်ချက်များကိုမဖြည့်ဆည်းပေးနိုင်ပါက function ကိုကွပ်မျက်မည်မဟုတ်ပါ။
<?php
session_start();
session_register_shutdown(function() {
// မှန်ကန်သော parameterless ပြန်ခေါ်ချက်
error_log("Sessionရုပ်သိမ်းခြင်း,မှန်ကန်သော callback");
});
?>
အမည်မသိလုပ်ဆောင်ချက်များကို parameters များသို့မဟုတ်မမှန်ကန်သော callback ကြေငြာချက်များဖြင့်အသုံးပြုခြင်းကိုရှောင်ပါ။
အကယ်. session_write_close () ခေါ်ဆိုမှုများသည်ကုဒ်နံပါတ်များတွင်ပါ 0 င်ပါကသို့မဟုတ်အခြားမူဘောင်များ / စာကြည့်တိုက်များသည် Session Oreming Page တွင်ပြုပြင်မွမ်းမံခြင်း,
<?php
session_start();
session_register_shutdown(function() {
error_log("ကရိယာတန်းဆာsessionရုပ်သိမ်းခြင်း回调");
});
// 这里不要提前ရုပ်သိမ်းခြင်း会话
// session_write_close(); // ကြိုတင်ခေါ်လျှင်,会导致注册的回调不ကရိယာတန်းဆာ
?>
ကျေးဇူးပြု. ခေါ်ဆိုမှုကိုစောစောစီးစီးပိတ်ခြင်းကိုရှောင်ပါ။
Scriptionulation (သို့ ) ထွက်ပေါက် () / die () () / die () ကို ကြိုတင်ခေါ်ဝေါ်စဉ်အခါဆိုးဝါးသောအမှားများဖြစ်ပေါ်သောအခါတွင်မှတ်ပုံတင်ထားသောမှတ်ပုံတင်ခြင်းကိုပိတ်ထားခြင်းမပြုနိုင်ပါ။
<?php
session_start();
session_register_shutdown(function() {
error_log("回调ကရိယာတန်းဆာ成功");
});
// ဇာတ်ညွှန်းရိုသေလေးစားမှုသို့မဟုတ်အချိန်မတန်ဘဲရပ်စဲခြင်း
// exit; // 如果ကရိယာတန်းဆာexit,မှတ်ပုံတင်ထားသော callback ကိုအစပျိုးမည်မဟုတ်ပါ
?>
၎င်းသည်ပုံမှန်အားဖြင့်ပုံမှန်အားဖြင့်ပုံမှန်အားဖြင့်အမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုမှတဆင့်သို့မဟုတ်အရေးပါသောဖြစ်စဉ်များတွင်ထွက်ပေါက်ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းကိုရှောင်ရှားရန်သေချာစေရန်အကြံပြုသည်။
Session_Register_shutdown () သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်အထက်ပါအချက်များကိုသင်အသုံးပြုသောအခါအထက်ပါအချက်ငါးချက်ကိုဂရုပြုရမည်။
PHP ဗားရှင်းသည်≥5.4ဖြစ်ရမည်
အဆိုပါ session ကိုစတင်ရပါမည်
callback function ကိုအဘယ်သူမျှမ parameters တွေကိုရှိရမည်
အစည်းအဝေးများအစောပိုင်းပိတ်ခြင်းကိုရှောင်ကြဉ်ပါ
ခြွင်းချက်ပြတ်တောက်ခြင်းကို Script Script ကိုရှောင်ပါ
ဤအခြေအနေများနှင့်တွေ့ဆုံပြီးမှသာ session_register_shutdown () ပုံမှန်အားဖြင့်ကွပ်မျက်ခံရခြင်း,