$GLOBALS ($GLOBALS)
متغیر «$GLOBALS» یک آرایه سراسری است. «سراسری (Global)» یعنی از هر اسکوپی قابل دسترسی است. اسکوپ یعنی محدوده دید متغیر. پس با $GLOBALS می توانیم به متغیرهای بیرونی، داخل تابع هم برسیم.
تعریف $GLOBALS در PHP
$GLOBALS همه متغیرهای سراسری را نگه می دارد. کلید آرایه نام متغیر است. بنابراین با $GLOBALS['x'] مقدار x را می گیریم.
دسترسی با $GLOBALS داخل تابع
اینجا x بیرون تعریف شده است. سپس داخل تابع با $GLOBALS به آن می رسیم.
$x = 75;
function myfunction() {
echo $GLOBALS['x'];
}
myfunction();
چرا بدون $GLOBALS کار نمی کند؟
در PHP، متغیر بیرونی خودکار وارد تابع نمی شود. پس echo $x کار نمی کند.
$x = 75;
function myfunction() {
echo $x;
}
myfunction();
نکته: برای دسترسی امن، یا از $GLOBALS استفاده کن یا متغیر را global کن.
استفاده از کلیدواژه global
می توانیم داخل تابع بنویسیم global $x. سپس مثل معمول از x می خوانیم.
$x = 75;
function myfunction() {
global $x;
echo $x;
}
myfunction();
ساخت و خواندن متغیر سراسری
متغیرهای بیرونی خودشان سراسری اند. با هر دو روش می خوانیم.
$x = 100;
echo $GLOBALS["x"];
echo $x;
حتی می توانیم داخل تابع، متغیر سراسری تازه بسازیم.
function myfunction() {
$GLOBALS["x"] = 100;
}
myfunction();
echo $GLOBALS["x"];
echo $x;
مطالب مرتبط داخل سایت
پیشنهاد می کنم فصل سوپرگلوبال ها را ببین. سپس $_SERVER را بخوان تا کاربرد عملی را ببینی.
گام های تمرینی سریع $GLOBALS در PHP
- یک متغیر بیرون تعریف کن.
- داخل تابع با $GLOBALS به آن echo بده.
- بار دیگر با global مقدار را چاپ کن.
جمع بندی سریع
- $GLOBALS آرایه همه سراسری هاست.
- داخل تابع، بیرونی ها خودکار نیستند.
- از $GLOBALS یا global استفاده کن.
- می توانی سراسری جدید بسازی.