PHP ရှိ Global variable များကိုများသောအားဖြင့် $ Global arrays မှတဆင့် 0 င်ရောက်လေ့ရှိကြသည်။ ၎င်းတို့သည်လုပ်ဆောင်ချက်များ (သို့) script လုပ်ကွက်များအကြားအချက်အလက်များကိုမျှဝေရန်အသုံးဝင်သည်။ ဥပမာအားဖြင့်:
$globalVar = "Hello, world!";
function testGlobal() {
global $globalVar;
echo $globalVar;
}
ရှုပ်ထွေးသောစီမံကိန်းများတွင်အချို့သော configuration ပစ္စည်းများသို့မဟုတ်ဖိုင်ရှယ်ယာများရှိအချက်အလက်များသို့မဟုတ်အချက်အလက်များသည် configuration files များဖတ်ရှုပြီးနောက် settings arrays ကဲ့သို့သောကမ္ဘာလုံးဆိုင်ရာ variable များအဖြစ်မှတ်ပုံတင်နိုင်သည်။
unset () ကို အသုံးပြု. ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုဖျက်ရန်နည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -
unset($GLOBALS['globalVar']);
သို့မဟုတ်:
global $globalVar;
unset($globalVar);
နည်းလမ်းနှစ်မျိုး လုံး သည်လက်ရှိနယ်ပယ်မှဖြစ်စေ, သို့သော်ထိုသို့သောဖျက်မှုသည်လုံးဝလုံခြုံမှုမရှိနိုင်ပါ, အထူးသဖြင့်အစီအစဉ်၏အခြားအစိတ်အပိုင်းများသည်ဤ variable များပေါ်တွင်မှီခိုနေရသောအခါ
ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုဖျက်ပစ်လိုက်ရင်အခြားလုပ်ဆောင်ချက်တွေ (သို့) script တွေဟာဒီ variable တွေကိုသုံးဖို့ကြိုးစားနေတုန်းပဲ။ "undefined variable ကို" အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မယ်။ ဥပမာအားဖြင့်:
unset($GLOBALS['config']);
// တခြားနေရာသွားရောက်ကြည့်ရှုရန်ကြိုးစားပါ
echo $config['db_host']; // အမှားတစ်ခုသတင်းပို့ပါလိမ့်မယ်
အချို့သောမူဘောင်များသို့မဟုတ် CMS များတွင်အသုံးပြုသူများကိုအသုံးပြုသူများအစည်းအဝေးများ, ပြင်ဆင်မှုပစ္စည်းများသို့မဟုတ် cache data များကိုသိမ်းဆည်းရန်ကမ္ဘာလုံးဆိုင်ရာ variable များကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ ဤ variable များကိုဖျက်ခြင်းသည်ပုံမှန်မဟုတ်သောစနစ်အပြုအမူသို့မဟုတ်ပင်ပျက်စီးယိုယွင်းစေနိုင်သည်။ ဥပမာအားဖြင့်, အချို့သောပလပ်ဂင်များသည် ကမ္ဘာ့အကောင်းဆုံးကမ္ဘာကြီး ['plugin_settings' ပေါ်မူတည်သည်။
အကယ်. ကမ္ဘာလုံးဆိုင်ရာ variable ကိုရည်ညွှန်းချက်တစ်လျှောက်ဖြတ်သန်းသွားပါက unset () ကို အသုံးပြုခြင်းသည်ရည်ညွှန်းကွင်းဆက်ကိုဖြတ်တောက်လိမ့်မည်, သို့သော်အမှန်တကယ်ဒေတာများကိုဖျက်ဆီးလိမ့်မည်မဟုတ်ပါ။ ၎င်းသည် developer များကအချက်အလက်များကိုရှင်းလင်းပြီးအမှန်တကယ်သိုလှောင်ထားဆဲဖြစ်ကြောင်းကိုမှားယွင်းစွာယုံကြည်စေနိုင်သည်ဟုဆိုသည်။
global $a;
$b =& $a;
unset($a); // $b နေဆဲတည်ရှိ,မူရင်းဒေတာကိုညွှန်ပြ
အကောင်းဆုံးနည်းလမ်းမှာကမ္ဘာလုံးဆိုင်ရာ variable များကိုအသုံးပြုခြင်းကိုရှောင်ရှားရန်ဖြစ်သည်။ အစားမှီခိုဆေးထိုးခြင်း, ဤနည်းလမ်းများသည်အမျိုးမျိုးသောဘေးထွက်ဆိုးကျိုးများကိုပိုမိုရှင်းလင်းစွာစီမံနိုင်ပြီးအလားအလာဘေးထွက်ဆိုးကျိုးများကိုလျှော့ချနိုင်သည်။
ကမ္ဘာလုံးဆိုင်ရာညစ်ညမ်းမှုကိုရှောင်ရှားရန်အတန်းများသို့မဟုတ်အမည်များမှတစ်ဆင့် variable များကို encapsulate ။ ဥပမာအားဖြင့်:
namespace Gitbox\Config;
class Settings {
public static $options = [
'db_host' => 'localhost',
'db_user' => 'root'
];
}
ဤနည်းအတိုင်းသင်အသုံးပြုနိုင်သည်
echo \Gitbox\Config\Settings::$options['db_host'];
configuration ကိုကမ္ဘာအနှံ့နယ်ပယ်သို့ဖော်ထုတ်မည့်အစား။
အကယ်. သင်သည် variable များကိုအမှန်ပင်ဖျက်ရန်လိုအပ်ပါက "undefined variable" အမှားကိုရှောင်ရှားရန်မဖျက်မီတည်ရှိမှုကိုပြုလုပ်ရန်အကြံပြုသည်။
if (isset($GLOBALS['tempData'])) {
unset($GLOBALS['tempData']);
}
ပိုကြီးတဲ့စီမံကိန်းတွေမှာစည်းလုံးညီညွတ်တဲ့သန့်ရှင်းရေးယန္တရားကိုဒီဇိုင်းဆွဲထားနိုင်ပါတယ်။ ဥပမာအားဖြင့်, ရှင်းလင်းပြတ်သားစွာပြုလုပ်ရန်နှင့်သတ်မှတ်ထားသောစစ်ဆင်ရေးများကိုတစ်ပုံစံတည်းတွင်တူညီစွာလုပ်ဆောင်ရန်လိုအပ်သည့် variable များကိုစာရင်းပြုစုနိုင်သည်။
function clearGlobals(array $keys) {
foreach ($keys as $key) {
if (isset($GLOBALS[$key])) {
unset($GLOBALS[$key]);
}
}
}
clearGlobals(['tempCache', 'sessionBackup']);