المتغيرات شاملة المجال Global Scope variables
المتغيرات شاملة المجال ( Global Scope variables ) هي المتغيرات التي يتم تعريفها خارج الدالة ولايمكن استدعاءها داخل الدالة إلا باستخدام الأمر global لكي يسمح بالوصول لقيمة المتغير . لأنه بشكل افتراضي وفي حالة عدم تعريفه بهذا الشكل , لن يتم الوصول للمتغير وسيتم التعامل مع المتغير علي أنه غير معرف undefined.
لاحظ طريقة تعريف المتغيرين x$ و y$ في البرنامج التالي
<?php $x=5; // global scope //كود خاطئ function Test_1() { $y=10; // local scope echo "<p>\$x لن يتم طباعة قيمة المتغير<p>";//لاحظ استخدام علامة تخطي الرمز \ لتخطي علامة تعريف المتغير echo "Variable x is: $x"; echo "<br>"; echo "Variable y is: $y"; } Test_1(); // كود صحيح function Test_2() { global $x; $y=10; // local scope echo "<p>\$x يتم طباعة المتغير<p>"; echo "Variable x is: $x"; echo "<br>"; echo "Variable y is: $y"; } Test_2() ?>في البرنامج السابق تم تعريف المتغير x$ خارج الدوال وبشكل افتراضي يكون هذا متغير ذو مجال شامل , ثم قمنا بإنشاء الدالة ()test_1 وتم تعريف المتغير y$ بداخلها ثم شرعنا في طباعة المتغيرين, والنتيجة أنه لم يتم طباعة المتغير x$ لأنه معرف خارج الدالة ولا يمكن الوصول إليه إلا إذا تم استخدام الأمر global قبل المتغير داخل الدالة , وهذا ما تم في الدالة ()test_2 .
بشكل تلقائي عند إضافة أي متغير شامل ( Global variable ) , يتم إضافة هذه المتغيرات إلي مصفوفة ( PHP ARRAY ) مسبقة الإعداد في ( PHP ) تسمي
$GLOBAL[index]بحيث يكون الـ Index هو اسم المتغير, ويمكن الوصول لقيمة المتغيرات بهذا الشكل أيضاً
<?php $x=5; $y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; // يتم طباعة 15 ?>يجب عليك استخدام الـ ( GLOBAL VARIABLES ) بحذر شديد, لذا أوصي عدم استخدامها إلا في الحالات الضرورية فقط عندما لا تجد مفر غير ذلك. لأنه يوماً ما سيكون كود برنامجك عبارة عن مئات السطور مما يجعل عملية الوصول للمتغير الذي تم ادخاله بشكل غير سليم صعبة للغاية. وأحياناً قد تنسى وتستخدم أحد هذه المتغيرات كمتغير محلي ( LOCAL VARIABLES ) داخل دالة.
يمكنك كتابة المتغيرات الشاملة ( GLOBAL VARIABLES ) باستخدام الأحرف الكبيرة Capital Letters كما هو الحال في الثوابت ( PHP CONSTANTS ) لسهولة تمييزها.
حقيقة Globalفي الحقيقة يعتبر استخدام الكلمة global هو نو من أنواع التخصيص بالمرجعية ( Assigning By Reference ) , ولمعرفة المزيد عليك قراءة ( PHP References ).
المتغيرات فوق الشاملةالمتغيرات فوق الشاملة ( Super Global Variables ) هي متغيرات مسبقة الإعداد في ( PHP ) وتتبع خواص المتغيرات الشاملة ( GLOBAL VARIABLES ) حيث يمكن استخدامها في أي مكان تريد.وتحتوي علي معلومات تخص البرنامج وبيئة تشغيله. وجميع هذه المتغيرات تبدأ بعلامة (_$) مثل SERVER_$ ماعدا المتغير GLOBAL$ , ويجب عليك تجنب تسمية متغيرات برنامجك بأي من أسماء المتغيرات الفوق شاملة .
1- GLOBAL$
2- SERVER_$
3- GET_$
4- POST_$
5- FILES_$
6- REQUEST_$
7- COOKIE_$
8- SEESION_$
9- ENV_$
وكل من هذه المتغيرات له شرح منفصل.