PHP

PHP — دامنه ی متغیرها (Variables Scope)

آخرین بروزرسانی: 1404/07/27

دامنه ی متغیرها (Variables Scope)

در این مقاله با مفهوم دامنه ی متغیرها (Variables Scope) در PHP آشنا می شوید. یادگیری این موضوع کمک می کند بدانید متغیرها در کجای کد معتبر هستند و چگونه می توان از آن ها در بخش های مختلف استفاده کرد.

تعریف دامنه ی متغیر

دامنه یعنی محدوده ای از کد که در آن یک متغیر (Variable) در دسترس است. در PHP، متغیرها می توانند محلی، سراسری یا ایستا باشند. درک درست دامنه به شما کمک می کند از تداخل و خطا جلوگیری کنید.

دامنه ی محلی (Local Scope)

متغیری که داخل یک تابع تعریف می شود فقط در همان تابع قابل استفاده است. پس از اتمام اجرای تابع، متغیر از بین می رود.

function testScope() {
  $x = 10;
  echo $x;
}

testScope();
echo $x; // خطا: متغیر خارج از تابع شناخته شده نیست

دامنه ی سراسری (Global Scope)

متغیرهایی که خارج از تابع تعریف می شوند در تمام کد در دسترس اند، اما از داخل تابع نمی توان مستقیماً به آن ها دسترسی داشت.

$x = 5;

function showX() {
  echo $x; // خطا: $x در این دامنه ناشناخته است
}

showX();

برای استفاده از متغیر سراسری در داخل تابع، باید از کلیدواژه global استفاده کنید:

$x = 5;
$y = 10;

function sumGlobal() {
  global $x, $y;
  $y = $x + $y;
}

sumGlobal();
echo $y; // خروجی: 15

استفاده از آرایه $GLOBALS

PHP تمام متغیرهای سراسری را در آرایه ای به نام $GLOBALS ذخیره می کند که از هر جایی در برنامه در دسترس است.

$x = 5;
$y = 10;

function sumGlobalArray() {
  $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}

sumGlobalArray();
echo $y; // خروجی: 15

دامنه ی ایستا (Static Scope)

متغیرهای محلی معمولاً پس از اجرای تابع حذف می شوند. اگر بخواهید مقدارشان حفظ شود، از کلیدواژه static استفاده کنید.

function counter() {
  static $count = 0;
  $count++;
  echo $count . "\n";
}

counter();
counter();
counter(); // خروجی: 1 2 3

جمع بندی

شناخت دامنه ی متغیرها برای نوشتن کد تمیز و قابل درک در PHP ضروری است. پیشنهاد می کنیم برای درک بیشتر به بخش متغیرها در PHP و توابع مراجعه کنید.

نکته: همیشه از نام گذاری دقیق و ساختارمند برای متغیرها استفاده کنید تا در پروژه های بزرگ تر دچار تداخل نشوید.