PHP တွင် အဆုံး () function သည်အများအားဖြင့်အသုံးပြုသောအသုံးပြုသော array function တစ်ခုဖြစ်သည်။ ဤစစ်ဆင်ရေးသည်အရေးပါသောအရာအများစုကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။ သို့သော်သင်သည် အဆုံး () function ကိုအသုံးပြုသောအခါရည်ညွှန်းခင်းကျင်းမှုကိုကိုင်တွယ်ရန်မမျှော်လင့်သောဘေးထွက်ဆိုးကျိုးများဖြစ်ပေါ်နိုင်သည်။ ဤဆောင်းပါးသည်အဘယ်ကြောင့်ဤသို့ဖြစ်ပျက်နေကြောင်းနှင့်သက်ဆိုင်သောဥပမာအချို့ကိုပေးရန်ရှင်းပြပါလိမ့်မည်။
PHP တွင် အဆုံး ၏ syntax သည်အလွန်ရိုးရှင်းပါသည်။
mixed end ( array &$array )
$ array သည်သင်ဘယ်လိုလုပ်ကိုင်လိုသောခင်းကျင်းမှုဖြစ်သည်။ end () သည် ခင်းကျင်းမှု၏အတွင်းပိုင်းညွှန်ကြားချက်ကိုခင်းကျင်း၏နောက်ဆုံးအချက်ကိုရွှေ့ပြီးထိုဒြပ်စင်၏တန်ဖိုးကိုပြန်ပေးလိမ့်မည်။ မှတ်သား သင့်သည် () သည် array ၏အတွင်းပိုင်း pointer အနေအထားကိုပြောင်းလဲလိမ့်မည်, ဆိုလိုသည်မှာ နောက်တစ်ကြိမ် , Prev () နှင့်အခြားလုပ်ဆောင်မှုများကို နောက်တစ်ကြိမ် အသုံးပြုသောနောက်တွင်၎င်းသည်အတွင်းပိုင်း pointer အနေအထားပေါ် အခြေခံ. ဖြစ်သည်။
ရည်ညွှန်းချက် arrays ကိုအသုံးပြုသည့်အခါပြနာသည်များသောအားဖြင့်ဖြစ်သည်။ ရည်ညွှန်းရာခင်း arrays သည်ရည်ညွှန်းခြင်းဖြင့်လုပ်ဆောင်မှုများကိုထုတ်ဖော်ပြောဆိုသည်။
အောက်ပါကုဒ်ကိုသုံးသပ်ကြည့်ပါ။
$array = [1, 2, 3, 4];
$refArray = &$array; // ရည်ညွှန်း။ အသုံးပြုပြီးခင်းကျင်း
$lastElement = end($refArray); // Pointer ကိုနောက်ဆုံးဒြပ်စင်သို့ရွှေ့ပါ
echo $lastElement; // ထုတ်လုပ်ခြင်း 4
echo $array[0]; // ထုတ်လုပ်ခြင်း 4
ဒီဥပမာမှာ $ refarray $ array ကိုရည်ညွှန်းသည်။ ထို့ကြောင့် အဆုံး () function သည် $ refarray ကို အကျိုးသက်ရောက်စေရုံသာမကမူလ ဒေါ်လာ array လည်းဖြစ်သည်။ အဆုံးကတည်းက () array ၏အတွင်းပိုင်းအမှတ်အသားကိုပြောင်းလဲခြင်း, ဤသည် $ array ၏ပထမ ဦး ဆုံး element ကို array ၏နောက်ဆုံး element ကိုဖြစ်စေသော, i.e. 4 ။ ဤသည်ဘေးထွက်ဆိုးကျိုးများ၏ထင်ရှားပြ၏။
ဤဘေးထွက်ဆိုးကျိုးများ၏အဓိကအကြောင်းရင်းမှာ PHP Arrays ၏ပြည်တွင်းရေးလုပ်ငန်းယန္တရားဖြစ်သည်။ သင်ကိုးကားစရာခင်းကျင်းမှုကိုအသုံးပြုသောအခါ PHP သည်မိတ္တူအသစ်တစ်ခုကိုမဖန်တီးနိုင်သော်လည်းမူလခင်းကျင်းမှုတွင်တိုက်ရိုက်လည်ပတ်သည်။ ဆိုလိုသည်မှာ array ၏ pointer အခြေအနေ (I.E. , "လက်ရှိ pointer အနေအထား) ကိုမျှဝေသည်။ အကယ်. သင်သည် အဆုံးကို ခေါ်ဆိုပါက Reference Array တွင် Array ၏ Pointer သည်မူလခင်းကျင်းအနေအထားကိုထိခိုက်စေမည့်နောက်ဆုံးဒြပ်စင်သို့ပြောင်းသွားလိမ့်မည်။
ထို့ကြောင့်သင်၏ကုဒ်သည်လက်ရှိခင်းကျင်း pointer ၏လက်ရှိအနေအထားကိုမူတည်ပါက (သို့မဟုတ်ကွင်းဆက်ဖြတ်သန်းခြင်းစသဖြင့်) အပြည့်အစုံကိုမူတည်သည် ။
ဤဘေးထွက်ဆိုးကျိုးများကိုရှောင်ရှားရန်မူရင်းခင်းကျင်း၏ pointer အနေအထားကိုပြောင်းလဲခြင်းမရှိဘဲ အဆုံး () function ကိုသုံးနိုင်သည်။ ဤပြ problem နာကိုရှောင်ရှားရန်နည်းလမ်းများစွာရှိသည် -
ခင်းကျင်းမိတ္တူကိုသုံးပါ။
Array မိတ္တူတစ်ခုဖန်တီးပေးခြင်းဖြင့်မူရင်းခင်းကျင်းမှုကိုတိုက်ရိုက်မပြုပြင်ပါနှင့်။ ဥပမာအားဖြင့်:
$array = [1, 2, 3, 4];
$arrayCopy = $array; // ခင်းကျင်းမိတ္တူတစ်ခုဖန်တီးပါ
$lastElement = end($arrayCopy); // မူရင်းခင်းကျင်းမှုကိုမထိခိုက်ပါ
echo $lastElement; // ထုတ်လုပ်ခြင်း 4
echo $array[0]; // ထုတ်လုပ်ခြင်း 1(မူရင်းခင်းကျင်းပြောင်းလဲခြင်းမရှိသေးပါ)
array pointer ကိုကိုယ်တိုင်ပြန်လည်စတင်ပါ။
အကယ်. သင်ကခင်းကျင်းမှု၏ pointer အနေအထားကိုပြောင်းလဲရန်လိုအပ်ပါကပြန်လည်နေရာချထားခြင်းကိုပြန်လည်နေရာချထားရေးကိုလျှော့ချနိုင်သည့် Pointer ၏အစကိုပြန်လည်နေရာချထားခြင်းအတွက်ပြန်လည်နေရာချထားရန် reset () function ကိုသုံးပါ။ ဥပမာအားဖြင့်:
$array = [1, 2, 3, 4];
end($array); // အဆုံးတိုင်အောင် pointer ကိုရွှေ့
reset($array); // နောက်ကျောကိုအစမှ pointer ကို reset
echo current($array); // ထုတ်လုပ်ခြင်း 1
ရည်ညွှန်း arrays ကိုအသုံးပြုခြင်းကိုရှောင်ပါ။
Array မိတ္တူကိုတိုက်ရိုက်ဖြတ်သန်းခြင်းသည်ခင်းကျင်းမှုကိုရည်ညွှန်းခြင်းထက် pointer မျှဝေခြင်းပြ problem နာကိုရှောင်ရှားနိုင်သည်။ ဥပမာအားဖြင့်:
$array = [1, 2, 3, 4];
$lastElement = end($array); // မိတ္တူကိုတိုက်ရိုက်ဖြတ်သန်းပါ,အဘယ်သူမျှမကိုးကားအသုံးပြုကြသည်
echo $lastElement; // ထုတ်လုပ်ခြင်း 4
echo $array[0]; // ထုတ်လုပ်ခြင်း 1(မူရင်းခင်းကျင်းပြောင်းလဲခြင်းမရှိသေးပါ)
အဆုံး () function သည် PHP တွင်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ အဆုံးကတည်းက () inarray ၏အတွင်းပိုင်း pointer အနေအထားကိုပြောင်းလဲစေ, ၎င်းသည်မူရင်းခင်းကျင်းမှု၏နောက်ဆက်တွဲစစ်ဆင်ရေးကိုအကျိုးသက်ရောက်နိုင်သည်။ ထို့ကြောင့်, အဆုံးကို အသုံးပြုသောအခါ, အထူးသဖြင့်ရည်ညွှန်းရာခင်း arrays ကိုအသုံးပြုသောအခါသင်သတိထားရန်လိုအပ်သည်။ Array မိတ္တူတစ်စောင်ကိုဖန်တီးခြင်းအားဖြင့် array pointer ကိုပြန်လည်သတ်မှတ်ခြင်းအားဖြင့်သို့မဟုတ်ရည်ညွှန်းထားသောဝါကျများအသုံးပြုခြင်းကိုရှောင်ရှားခြင်းအားဖြင့်ဤဘေးထွက်ဆိုးကျိုးများကို Code ၏မှန်ကန်မှုနှင့်ကြိုတင်ခန့်မှန်းနိုင်မှုကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။