متغیر محلی

در علوم رایانه، متغیر محلی به متغیری گفته می‌شود که در هنگام به پایان رسیدن ماژولها و توابع برنامه نویسی که این متغیر در آن به‌کار برده شده‌است، مقدار خود را از دست می‌دهد. در حالت معمول با اجرای یک تابع یا یک ماجول متغیرهایی در درون آن مقداردهی می‌شوند که اگر این متغیرها از نوع محلی باشند با خروج از تابع یا ماژول مقداری که در آن‌ها مقداردهی شده بود ازبین می‌رود اما چنانچه این متغیرها سراسری باشند با خروج از تابع یا ماژول مقدار آن نگهداری شده و می‌توان دوباره مقادیر آن را فراخوانی نمود.

متغیرهای محلی در زبان‌های مختلف برنامه‌نویسی 
در بسیاری از زبان‌های برنامه‌نویسی، تفاوت بین یک متغیر محلی و یک متغیر سراسری آن است که متغیر محلی برای اولین بار داخل یک ماژول یا تابع تعریف می‌شود، اما متغیر سراسری پیش از ورود به یک ماژول یا تابع تعریف می‌شود. در برخی زبان‌های برنامه‌نویسی تعریف متغیرهای محلی و سراسری تفاوت‌هایی با آنچه گفته شد دارد.

روبی 
در زبان برنامه‌نویسی روبی، نام متغیرهای سراسری با نویسهٔ $ شروع می‌شود (نظیر $global_variable) در حالی که نام متغیرهای محلی در ابتدایش چنین نویسه‌ای ندارد (نظیر local_varilable).

پرل 
در زبان برنامه‌نویسی پرل برای تعریف متغیرهای محلی از پیشوند local استفاده می‌شود، نظیر کد زیر:

$a = 1;
sub f() {
  local $a;
  $a = 2;
  g();
}
sub g() {
  print "$a\n";
}
g();
f();
g();

که خروجی آن به ترتیب اعداد ۱، ۳ و ۱ خواهد بود.

پی‌اچ‌پی 
در پی‌اچ‌پی متغیرهایی که داخل یک تابع تعریف بشوند همگی محلی تلقی می‌شوند مگر آن که مشخصاً ذکر شود که باید متغیر سراسری به کار گرفته بشود (با استفاده از پیشوند global). مثلاً در کد زیر، تابع f مقدار متغیر سراسری را نشان خواهد داد، در حالی که تابع g خروجی نخواهد داشت چون متغیر a را به صورت محلی فرا می‌خواند که مقداردهی نشده‌است:

$a = 1; /* global scope */

function f()
{
    global $a;
    echo $a;
}

function g()
{
    echo $a;
}

f();
g();

منابع

جستارهای وابسته 
 متغیر سراسری

متغیر (برنامه‌نویسی رایانه)