လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ unset ကိုအသုံးပြုပြီး hyperglobal ခင်းကျင်းခြင်းမှ variable များကိုမည်သို့ဖယ်ရှားရမည်နည်း။ ကြိုတင်ကာကွယ်မှုများကဘာတွေလဲ။

PHP ၏ unset ကိုအသုံးပြုပြီး hyperglobal ခင်းကျင်းခြင်းမှ variable များကိုမည်သို့ဖယ်ရှားရမည်နည်း။ ကြိုတင်ကာကွယ်မှုများကဘာတွေလဲ။

gitbox 2025-09-30

PHP တွင် unset () သည် variable များသို့မဟုတ် array များတွင် element များကိုဖျက်ဆီးရန်အသုံးများသော function တစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့သည် hyperglobal array များ (ဥပမာ $ _post , $ _get , $ _session စသည်) ဖြစ်သည့်အခါကျွန်ုပ်တို့သည်ဤ arrays မှတိကျသော variable ကိုဖယ်ရှားရန်လိုအပ်နိုင်သည်။ ဤဆောင်းပါးသည် hyperglobal arrays များမှ variary များကို variable များမှ variable များကိုဖယ်ရှားရန် UNSONT () မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။

1 ။ UNSET ၏အခြေခံအသုံးပြုမှု ()

unset () တစ်ခုသို့မဟုတ်တစ်ခုထက်ပိုသော variable တွေကိုဖျက်ဆီးရန်အသုံးပြုသည်။ Array element တွေကိုဖယ်ရှားတဲ့အခါမှာ unray ရဲ့သော့ကိုသတ်မှတ်ပြီးအဲဒါကိုဖျက်ပစ်ဖို့ unset () ကို တိုက်ရိုက်သုံးနိုင်တယ်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>]);
</span></span>

ဥပမာအားဖြင့်, ကျွန်ုပ်တို့တွင် အသုံးပြုသော Hyperglobal array တစ်ခုရှိသည်ဆိုပါစို့။ အသုံးပြုသူမှတင်ပြသောပုံစံဒေတာကိုကျွန်ုပ်တို့ဖျက်လိုပါက (ဥပမာ, key name username ) ကိုဖျက်လိုပါကကျွန်ုပ်တို့ဤသို့ပြုလုပ်နိုင်သည်ဆိုပါစို့။

 <span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>]);
</span></span>

2 ။ Hyperglobal Array မှ variable တွေကိုဖယ်ရှားပါ

PHP တွင် $ _get , $ _post , $ _session , $ _cookie , စသည်တို့အားလုံးသည်အသုံးပြုသူ၏ထည့်သွင်းမှုအချက်အလက်များ, တစ်ခါတစ်ရံကျွန်ုပ်တို့သည်တောင်းဆိုမှုကိုလုပ်ဆောင်သောအခါ element တစ်ခုကိုဖျက်ရန်လိုအပ်နိုင်သည်။ ဤတွင်အချို့သောဘုံအသုံးပြုမှုအခြေအနေများမှာ -

2.1 $ _GET ခင်းကျင်းမှဒေတာများကိုဖျက်ပါ

URL ရှိ Query String တွင်မလိုအပ်သော parameters များပါ 0 င်သည့်အခါ၎င်းကို unset () မှတဆင့်ဖျက်ပစ်နိုင်သည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>]);
</span></span>

၎င်းသည် ID Parameter ကို $ _GET မှဖယ်ရှားလိမ့်မည်။

2.2 _Session မှ session variable များကိုဖျက်ပါ

Session Management သည်များသောအားဖြင့်အသုံးပြုသူ login status နှင့်အခြားအချက်အလက်များကို $ _Session Array မှတဆင့်သိုလှောင်ထားသည်။ အသုံးပြုသူသည်မှတ်တမ်းတင်ပါကကျွန်ုပ်တို့သည်တိကျသော session variable များကိုဖျက်နိုင်သည်။

 <span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>]);
</span></span>

သင် session တစ်ခုလုံးကိုဖျက်လိုပါက session_destroy () ကို သုံးနိုင်သည်။

2.3 _cookie မှ cookies များကိုဖျက်ပါ

unset () က cookies များကို browser မှတိုက်ရိုက်မဖျက်နိုင်သော်လည်း၎င်းကိုသက်တမ်းကုန်သွားသော cookie ကိုသတ်မှတ်ခြင်းဖြင့် "ဖျက်ပစ်" နိုင်သည်။

 <span><span><span class="hljs-title function_ invoke__">setcookie</span></span><span>(</span><span><span class="hljs-string">'username'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-title function_ invoke__">time</span></span><span>() - </span><span><span class="hljs-number">3600</span></span><span>); </span><span><span class="hljs-comment">// တည်ဆောက်သည် cookie သက်တမ်းကုန်ဆုံးချိန်သည်လွန်ခဲ့သောတစ်နာရီအကြာဖြစ်သည်</span></span><span>
</span></span>

ဤနည်းအားဖြင့်အသုံးပြုသူ၏ browser သည် username cookie ကိုဖျက်ပစ်လိမ့်မည်။

3 ။ မှတ်စုဖို့အရာ

unset () သည်အလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သော်လည်း၎င်းကိုအသုံးပြုသောအခါအာရုံစိုက်ရန်အသေးစိတ်အချက်အလက်များရှိသည်။

3.1 unset () hyperglobal array သူ့ဟာသူကိုမဖျက်နိုင်ပါ

unset () hyperglobal ခင်းကျင်းမှုတွင် element တစ်ခုကိုဖျက်ပစ်နိုင်သော်လည်း Hyperglobal Array တစ်ခုလုံးကိုမဖျက်နိုင်ပါ။ ဥပမာအားဖြင့်, အောက်ပါကုဒ်:

 <span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>);
</span></span>

၎င်းသည် $ _post array တစ်ခုလုံးကိုမဖျက်ပါ။ ၎င်းသည် $ _post array ကိုရည်ညွှန်းသည်။ $ _post Array ကိုယ်တိုင်သည်ရှိနေဆဲဖြစ်ပြီး၎င်းအတွင်းရှိဒြပ်စင်များကိုဆက်လက်ရယူနိုင်ဆဲဖြစ်သည်။

3.2 $ _Globals array မှ variable တွေကိုဖျက်လို့မရပါဘူး

$ _Globals array ကိုကမ္ဘာအနှံ့အပြားတွင် variable များကိုဝင်ရောက်ကြည့်ရှုရန်နှင့်ပြုပြင်ရန်အသုံးပြုသည်။ $ _Globals သည် PHP ၏ပြည်တွင်းအကောင်အထည်ဖော်မှု၏အစိတ်အပိုင်းတစ်ခုဖြစ်သောကြောင့် unset () သည် aclowals မှ element များကိုမဖယ်ရှားနိုင်ပါ။ ဘာဖြစ်လို့လဲဆိုတော့ $ _Globals Array သည် PHP Runtime ၏ကမ္ဘာလုံးဆိုင်ရာပတ် 0 န်းကျင်ကိုအနီးကပ်ကွယ်ပြုထားသဖြင့်ဖြစ်သည်။

3.3 unset () အသုံးပြုသောရည်ညွှန်းကိုထိခိုက်လိမ့်မည်မဟုတ်ပေ

အကယ်. variable ကိုရည်ညွှန်းကိုးကားပါက array element ကို unray ကို အသုံးပြုခြင်းကိုပယ်ဖျက်လိုက်သောအခါရည်ညွှန်းချက်ကိုတိုက်ရိုက်အကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$a</span></span><span> = </span><span><span class="hljs-number">10</span></span><span>;
</span><span><span class="hljs-variable">$b</span></span><span> = &amp;</span><span><span class="hljs-variable">$a</span></span><span>;
</span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>);  </span><span><span class="hljs-comment">// ဖျက်ပါ $a ပေြာင်းလဲတတ်သော</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$b</span></span><span>;  </span><span><span class="hljs-comment">// နေဆဲ output ကို 10,အကေြာင်းမှာ $b နေဆဲကိုးကား $a</span></span><span>
</span></span>

4 ။ foreach loop အတွက် unset () ၏အသုံးပြုမှု

foreach loop ရှိခင်းကျင်းသောဒြပ်စင်များကိုဖျက်ရန်သင် unset () ကို အသုံးပြုသည့်အခါသတိထားပါ။ Forach သည် လက်ရှိခင်းကျင်းသောဒြပ်စင်တစ်ခု၏မိတ္တူတစ်စောင်ကိုဖန်တီးလိမ့်မည် ဥပမာအားဖြင့်:

 <span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$_POST</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> =&gt; </span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$key</span></span><span> == </span><span><span class="hljs-string">'username'</span></span><span>) {
        </span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>]);
    }
}
</span></span>

unset () $ _post ['username' ကိုပယ်ဖျက်သော်လည်း For Beop သည်ကွင်းဆက်အတွင်း array မိတ္တူတစ်စောင်ကိုဖန်တီးထားသောကြောင့် foreach သည် loop အဆုံးသတ်ပြီးနောက် _post array သည်အတူတူပင်ဖြစ်နေသည်။ ထိုကဲ့သို့သော ပြ problems နာများကိုရှောင်ရှားရန်သင်ဖျက်ရန်သင်ဖျက်လိုသောဒြပ်စင်များကိုပထမ ဦး ဆုံးစုဆောင်းခြင်းကိုပထမ ဦး ဆုံးစဉ်းစားရန်,

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

PHP တွင် unset () သည် hyperglobal ခင်းကျင်းမှုမှ variable များကိုဖယ်ရှားရန်လွယ်ကူသောနည်းလမ်းတစ်ခုဖြစ်သည်။ unset () ကို မှန်ကန်စွာအသုံးပြုခြင်းအားဖြင့်သင်သည် hyperglobal အချက်အလက်များကိုထိထိရောက်ရောက်စီမံနိုင်သည်။ သို့သော်, ဥပမာအားဖြင့်မှားယွင်းစွာမဖြည့်ဆည်းပေးနိုင်သည့်ပြောင်းလဲခြင်းသို့မဟုတ်မဖြည့်ဆည်းပေးနိုင်သည့်ပြောင်းလဲမှုများကိုရှောင်ရှားရန်၎င်းကိုအသုံးပြုသောအခါအသေးစိတ်အချက်အလက်များကိုလည်းဂရုပြုသင့်သည်။