ပထမ ဦး စွာ tick function များကိုမှတ်ပုံတင်ခြင်းနှင့်ဖျက်သိမ်းခြင်း၏အခြေခံအသုံးပြုမှုကိုပြန်လည်သုံးသပ်ကြပါစို့။
<?php
declare(ticks=1);
function tickHandler() {
echo "Tick handler called.\n";
}
// စာရင်းtickလုပ်ဆောင်ချက်
register_tick_function('tickHandler');
// Code Execution ကအစပျိုးပါလိမ့်မယ်tickလုပ်ဆောင်ချက်调用
for ($i = 0; $i < 3; $i++) {
echo "Loop iteration $i\n";
}
// Log Outtickလုပ်ဆောင်ချက်
unregister_tick_function('tickHandler');
?>
အထက်ပါဥပမာတွင်ကြေငြာချက်တစ်ခုစီကိုကွပ်မျက်ခံရပြီးနောက် Tophandler ကို ခေါ်လိမ့်မည်။ unegister_tick_Function ကို ခေါ်ဆိုသည့်အခါ function name သည်မှတ်ပုံတင်သည့်အချိန်နှင့်အတူတူပင်ဖြစ်ရမည်။
PHP ကိုယ်တိုင်သည်လက်ရှိမှတ်ပုံတင်ထားသော tick functions များစာရင်းကိုတိုက်ရိုက်ရရန် API ကိုမပေးနိုင်ပါ။ ထို့ကြောင့် developer များအနေဖြင့်မှတ်ပုံတင်ထားသောအမှတ်အသားစာရင်းကိုထိန်းသိမ်းရန်လိုအပ်သည်။
ဥပမာ -
<?php
declare(ticks=1);
$registeredTickFunctions = [];
function registerTickFunctionWrapper($func) {
global $registeredTickFunctions;
register_tick_function($func);
$registeredTickFunctions[] = $func;
}
function unregisterAllTickFunctions() {
global $registeredTickFunctions;
foreach ($registeredTickFunctions as $func) {
unregister_tick_function($func);
}
$registeredTickFunctions = [];
}
// 示例လုပ်ဆောင်ချက်
function tickOne() {
echo "tickOne called\n";
}
function tickTwo() {
echo "tickTwo called\n";
}
// စာရင်းtickလုပ်ဆောင်ချက်
registerTickFunctionWrapper('tickOne');
registerTickFunctionWrapper('tickTwo');
// Code Execution ကအစပျိုးပါလိမ့်မယ်tickလုပ်ဆောင်ချက်调用
echo "Running ticks...\n";
// Log Out所有tickလုပ်ဆောင်ချက်
unregisterAllTickFunctions();
?>
$ registeredtickfunctions array ကိုထိန်းသိမ်းထားခြင်းအားဖြင့်လုပ်ဆောင်ချက်အားလုံးကို logged လုပ်နိုင်သမျှကိုသင်သေချာစေနိုင်သည်။
အကယ်. သင်သည်အမည်မသိ function တစ်ခုကိုမှတ်ပုံတင်ရန်အမည်မသိလုပ်ဆောင်ချက်များကိုသို့မဟုတ်ပိတ်ပစ်ကိုအသုံးပြုပါကသင် logging လုပ်သည့်အခါတူညီသောပိတ်သိမ်းခြင်းကိုရည်ညွှန်းသည်။
ဥပမာ -
<?php
declare(ticks=1);
$closure = function() {
echo "Anonymous tick function called\n";
};
register_tick_function($closure);
// 尝试Log Out,တူညီသောပိတ်သိမ်း variable ကိုသုံးရမည်ဖြစ်သည်
unregister_tick_function($closure);
?>
အမည်မသိလုပ်ဆောင်ချက်များအသစ်တွင်မသွားပါနှင့်, Logout သည်ပျက်သွားလိမ့်မည်။
အဆိုပါမှတ်ပုံတင်ထားခြင်း_tick_FUNTRICTICRICTICRICTION ကိုယ်တိုင်သည်ပြန်လည်ထူထောင်ရေးတန်ဖိုးမရှိပါ။ Logout သည်အောင်မြင်မှုရှိမရှိကိုတိုက်ရိုက်ရှာဖွေရန်မဖြစ်နိုင်ပါ။ ၎င်းကိုသွယ်ဝိုက်။ အတည်ပြုနိုင်သည်။
Logout ကိုကွပ်မျက်ပြီးနောက် code segment ကိုပြန်ဖွင့်ပါ။ callback ဟုခေါ်သည်။
ပြည်နယ် variable ကိုထိန်းသိမ်းခြင်းအားဖြင့် tick collback တွင် function ကိုကွပ်မျက်သင့်မသင့်ကိုစစ်ဆေးပါ။
<?php
declare(ticks=1);
$registeredTickFunctions = [];
function registerTickFunctionWrapper($func) {
global $registeredTickFunctions;
register_tick_function($func);
$registeredTickFunctions[] = $func;
}
function unregisterAllTickFunctions() {
global $registeredTickFunctions;
foreach ($registeredTickFunctions as $func) {
unregister_tick_function($func);
}
$registeredTickFunctions = [];
}
function tickHandlerA() {
echo "tickHandlerA triggered\n";
}
function tickHandlerB() {
echo "tickHandlerB triggered\n";
}
registerTickFunctionWrapper('tickHandlerA');
registerTickFunctionWrapper('tickHandlerB');
echo "Before unregister:\n";
for ($i = 0; $i < 2; $i++) {
echo "Iteration $i\n";
}
unregisterAllTickFunctions();
echo "After unregister:\n";
for ($i = 0; $i < 2; $i++) {
echo "Iteration $i\n";
}
?>
Logout သည်အောင်မြင်မှုရရန်သေချာစေရန်အတွက် output တွင် fatch function ခေါ်ဆိုမှုကိုရှင်းလင်းစွာတွေ့မြင်နိုင်သည်။
PHP တွင်မှတ်ပုံတင်ထားသော tick function များကိုရယူရန်အတွက် built-in interface မရှိပါ။
မှတ်ပုံတင်ထားသော function list ၏စည်းလုံးညီညွတ်သောပြုပြင်ထိန်းသိမ်းမှုသည်စည်းလုံးမှုဖျက်သိမ်းခြင်းကိုအထောက်အကူပြုသည်။
Logout ကိုလွယ်ကူချောမွေ့စေရန်အမည်မသိလုပ်ဆောင်ချက်များကိုအသုံးပြုသောအခါကိုးကားချက်များကိုထိန်းသိမ်းထားသင့်သည်။
ကုဒ်စစ်ဆေးမှုကိုအစပျိုးပေးခြင်းအားဖြင့် logout effect ကိုစစ်ဆေးပါ။
ဤသိကောင်းစရာများသည် မှတ်ပုံတင်ထားခြင်းမရှိသော tick fatchings အားလုံးကိုအောင်မြင်စွာဖျက်သိမ်းနိုင်ကြောင်းသေချာစေသည်။
အထက်ဖော်ပြပါအကြောင်းအရာများသည်သင့်အားပိုမိုကောင်းမွန်သောစီမံခန့်ခွဲမှုများကိုပိုမိုစီမံခန့်ခွဲနိုင်ပြီး Program အပြုအမူကိုထိခိုက်သောကျန်ရှိသော tick function ကိုရှောင်ရှားနိုင်သည်။
<?php
declare(ticks=1);
$registeredTickFunctions = [];
function registerTickFunctionWrapper($func) {
global $registeredTickFunctions;
register_tick_function($func);
$registeredTickFunctions[] = $func;
}
function unregisterAllTickFunctions() {
global $registeredTickFunctions;
foreach ($registeredTickFunctions as $func) {
unregister_tick_function($func);
}
$registeredTickFunctions = [];
}
function tickHandler() {
echo "Tick function called.\n";
}
// စာရင်းtickလုပ်ဆောင်ချက်
registerTickFunctionWrapper('tickHandler');
echo "Before unregistering:\n";
for ($i = 0; $i < 3; $i++) {
echo "Loop iteration $i\n";
}
// Log Out所有tickလုပ်ဆောင်ချက်
unregisterAllTickFunctions();
echo "After unregistering:\n";
for ($i = 0; $i < 3; $i++) {
echo "Loop iteration $i\n";
}
?>