محدوده متغیرها در PHP (قسمت ششم)

در مقاله گذشته فهمیدیم که متغیر چیه.در این جلسه میخواهیم بپردازیم به انواع محدوده یا scope متغیرها در php و ببینیم چه کاربردی این محدوده ها دارند.


محدوده یا scope متغیر چیست؟

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

منظور از scope محدوده ای از اسکریپت ما می باشد که می توان از متغیر تعریف شده در آن محدوده استفاده کرد.

متغیرها دارای 3 نوع محدوده هستند:

  • محدوده عمومی یا global
  • محدوده محلی یا local
  • محدوده static


محدوده عمومی یا Global

متغیری که در خارج از تابعی تعریف شود دارای محدوده عمومی است و می توان به آن از هرجایی دسترسی پیدا کرد.

تنها مشکلی که وجود دارد دسترسی به آن داخل تابع است که برای آن هم راه حلی وجود دارد.چون خود تابع دارای محدوده محلی است و اجازه دسترسی به متغیر عمومی خارج از محدوده خود را نمی دهد.روش دسترسی به متغیر عمومی درون تابع را توضیح خواهم داد

مثال:

<?php
//متغیر عمومی
$x = 5;

function myTest() {
//عدم دسترسی به متغیر x
  echo &quot<p>Variable x inside function is: $x</p>&quot
}
myTest();
echo &quot<p>Variable x outside function is: $x</p>&quot
?>
/*
Variable x inside function is:
Variable x outside function is: 5
*/


متغیر محلی یا local

متغیری که درون یک تابع تعریف شود دارای محدوده محلی یا local است و نمی توان به آن در خارج از تابع دسترسی پیدا کرد.

مثال:

<?php
function myTest() {
  $x = 5; 
  //x دارای محدوده محلی است
  echo &quot<p>Variable x inside function is: $x</p>&quot
  //Variable x inside function is: 5
}
myTest();

echo &quot<p>Variable x outside function is: $x</p>&quot
//Variable x outside function is:
//دسترسی به متغیر x از بیرون تابع وجود ندارد
?>

این امکان وجود دارد که متغیرهای محلی خود را در توابع مختلف با یک نام یکسان تعریف کنید.

مثال:

<?php
function myTest() {
  $x = 5; 
  echo $x;
}
myTest();
//5

function myTest() {
  $x = 10;
  echo $x;
}
myTest2();
//10
?>

مشاهده ادامه در لینک زیر:

https://dejavan.ir


سخن پایانی

این بود یکی دیگر از آموزش PHP در صورت داشتن سوال یا نظر اون رو با من در میان بزارید.

من امیر جوان میر هستم گرافیست و توسعه دهنده وب از سال 1390

instagram: https://www.instagram.com/amir.javanmir/

تمامی حقوق این مطلب متعلق به سایت دیزاینر جوان می باشد هرگونه استفاده از این مطلب با ذکر منبع آن بلامانع است.

website: https://dejavan.ir
instagram: https://instagram.com/designer.javan
twitter: https://twitter.com/designer_javan
Telegram: https://t.me/designer_javan


سایر مطالب

https://virgool.io/learning-php