الدرس الثامن: نطاق المتغيرات (Variable Scope) في PHP
في الدرس ده هنتكلم عن مفهوم نطاق المتغيرات (Variable Scope) في PHP. النطاق بيوضح مكان المتغيرات اللي ممكن تستخدم فيه، سواء جوه أو بره دالة معينة.
إيه هو نطاق المتغيرات؟
نطاق المتغيرات هو المدى اللي فيه المتغير بيبقى متاح للاستخدام. المتغير ممكن يبقى ليه نطاق محلي (داخل دالة) أو نطاق عام (خارج الدالة وبيكون متاح في كل الكود).
النطاق العام (Global Scope)
المتغيرات اللي بتتعرف بره الدوال ليها نطاق عام (Global). يعني ممكن تتستخدم في أي مكان في الكود، إلا لو كنت جوه دالة لأن الدالة ليها نطاق خاص بيها. تعالوا نشوف مثال:
<?php
$greeting = "أهلاً";
function sayGreeting() {
echo $greeting; // هيطلع خطأ لأن المتغير $greeting مش متاح داخل الدالة
}
sayGreeting();
?>
في المثال ده، المتغير $greeting معرف بره الدالة. لكن لما جينا نستخدمه جوه الدالة sayGreeting، حصل خطأ لأن المتغير مش متاح في النطاق الخاص بالدالة.
النطاق المحلي (Local Scope)
المتغيرات اللي بتتعرف جوه الدوال ليها نطاق محلي (Local)، يعني بتبقى متاحة جوه الدالة بس. تعالوا نشوف مثال:
<?php
function sayGreeting() {
$greeting = "أهلاً";
echo $greeting;
}
sayGreeting(); // هيطبع "أهلاً"
echo $greeting; // هيطلع خطأ لأن المتغير $greeting مش متاح خارج الدالة
?>
في المثال ده، المتغير $greeting معرف جوه الدالة sayGreeting، وبالتالي هو متاح بس جوه الدالة. لو حاولنا نستخدمه بره الدالة هيحصل خطأ.
استخدام المتغيرات العامة جوه الدوال
لو عايز تستخدم متغير عام جوه دالة، لازم تستخدم الكلمة المحجوزة global عشان تقول لـ PHP إن المتغير ده عام. تعالوا نشوف مثال:
<?php
$greeting = "أهلاً";
function sayGreeting() {
global $greeting;
echo $greeting;
}
sayGreeting(); // هيطبع "أهلاً"
?>
في المثال ده، استخدمنا global عشان نستخدم المتغير $greeting اللي معرف بره الدالة. دلوقتي بقى ممكن نطبعه جوه الدالة من غير مشاكل.
المصفوفة $GLOBALS
ممكن كمان تستخدم المصفوفة $GLOBALS عشان توصل لأي متغير عام جوه الدالة. المصفوفة دي بتحتوي على كل المتغيرات العامة اللي موجودة في الكود. تعالوا نشوف مثال:
<?php
$greeting = "أهلاً";
function sayGreeting() {
echo $GLOBALS['greeting'];
}
sayGreeting(); // هيطبع "أهلاً"
?>
في المثال ده، استخدمنا المصفوفة $GLOBALS عشان نوصل للمتغير $greeting جوه الدالة من غير ما نستخدم global.
ملخص الدرس
- اتعلمنا يعني إيه نطاق المتغيرات (Variable Scope) وإزاي بنحدد مكان استخدام المتغيرات في الكود.
- اتعرفنا على النطاق العام (Global Scope) والنطاق المحلي (Local Scope) وإزاي نستخدمهم.
- اتعلمنا إزاي نستخدم المتغيرات العامة جوه الدوال باستخدام
globalأو$GLOBALS.
في الدرس اللي جاي، هنتكلم عن كيفية التعامل مع الملفات (File Handling) في PHP، وإزاي نقرأ ونكتب البيانات في الملفات.
