الدرس الثامن: نطاق المتغيرات (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، وإزاي نقرأ ونكتب البيانات في الملفات.