PDA

View Full Version : سوال: میدان دید متغیر (scope)



Aleereza
دوشنبه 25 شهریور 1392, 14:52 عصر
سلام دوستان من چندتا ویدیو و چندتا مقاله آموزشی درباره پی اچ پی دارم میبینم و میخونم اما متوجه اصطلاح میدان دید متغیر نشدم . اگه کسی میدونه به زبان خیلی ساده بگه چیه ؟؟؟

باتشکر

MMSHFE
دوشنبه 25 شهریور 1392, 16:05 عصر
میدان دید یا Scope درواقع محدوده اعتبار متغیر هست. برای مثال، وقتی یک متغیر داخل یک تابع تعریف میشه، خارج از اون تابع اعتبار نداره و دیده نمیشه و اگه بخوایم ازش استفاده کنیم، با خطا مواجه میشیم. بطور مشابه متغیرهای تعریف شده داخل یک کلاس (که بهشون فیلد میگیم) فقط در داخل محدوده کلاس یعنی بین { } ابتدا و انتهای بدنه کلاس (و درصورتی که public تعریف شده باشن، توسط اشیاء ایجاد شده از کلاس) اعتبار دارن و جاهای دیگه نمیتونیم مقدارشون رو مورد دستیابی و تغییر قرار بدیم. متغیرهای سراسری هم در PHP (متغیرهایی که خارج از توابع و کلاسها تعریف میشن) فقط درصورتی در داخل توابع و کلاسها قابل دسترسی هستن که صراحتاً با کمک کلمه کلیدی global داخل تابع دوباره تعریف بشن یا اینکه با کمک آرایه GLOBALS$ و استفاده از اسم متغیر بعنوان اندیس، بهشون دسترسی پیدا کنیم.