‎‎ميدان متغيردرپي اچ پيphp variable scope -‎

Previous >    <Next  

‎درphp متغيرآن هرجائي ازاسكريپت آن ميتواند تعريف يا مقدار بگيرد .درهرجائي از اسكريپت ‎كه بتوان به آن رجوع نموده ويا استفاده كرد، ميدان‎ (scope )‎ ‎آن نامند .درصورتيكه ازمتغيري خارج ازميدانش استفاده شود، خطا صادر ميشود.

‎‎درphp براي متغيرها سه نوع ميدان وجود دارد .ميدان ها مطابق زيرند.

‎‎-‎1‎ميدان محليlocal

‎‎-‎2‎جهانيglobal

‎‎-‎3‎ايستاstatic

‎اگر متغيري خارج ازتوابع تعريف شود، ازآن خارج توابع ميتوان استفاده نمود .اين نوعglobal ‎ميباشد.

‎‎مثال ـ درمثال زير متغير‎$x‎ازنوع ميدان جهاني است.

 <?php 
$x = 5; // global scope

function myTest() {
  // using x inside this function will generate an error
  echo "<p Variable x inside function is: $x</p>";
}
myTest();

echo "<p Variable x outside function is: $x</p>";
?> 

--(go to editor for change code and run)

‎اگر متغيري در داخل تابع تعريف شود، داراي ميدان محلي(local) ‎است .در مثال زيرمتغير‎$x‎ از نوع محلي است .

 <?php 
function myTest() {
  $x = 5; // local scope
  echo "<p Variable x inside function is: $x</p>";
}
myTest();

// using x outside the function will generate an error
echo "<p Variable x outside function is: $x</p>";
?> 

--(go to editor for change code and run)

‎دراين مثال متغيرمحلي‎$x‎ ‎دردو تابع تعريف شده است، اما متفاوت هستند .هركدام درتابع خودشان ‎قابل تشخيص هستند.بعبارتي هيچكدام آنها برديگري اثر دارد.

‎‎كي وردglobal درphp

‎براي اينكه درتابع ازمتغيرهاي بيروني بتوان استفاده نمود، بايد متغير مربوطه درتابع با كلمه global‎تعريف گردد .درمثال زير براي دو متغير ‎$y , $x ‎‎مورد فوق صادق است.

 <?php 
$x = 5;
$y = 10;

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

myTest();
echo $y; // outputs 15
?> 

--(go to editor for change code and run)

‎درphp همه متغيرهاي جهاني دريكarray بنام‎$GLOBALS[index] ‎ ‎كهindex ، نام متغير ميباشد ‎ذخيره ميگردد .با آن ميتوان درتوابع ازمتغيرهاي بيروني استفاده نمود.دراين حالت ضرورت تعريف ‎مطابق مثال قبلي نيست .درمثال زير، كه كارمثال قبلي است، ازمتغيرسوپرگلوبال ‎$GLOBAL‎‎استفاده شده است.

 <?php 
$x = 5;
$y = 10;

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

myTest();
echo $y; // outputs 15
?> 

--(go to editor for change code and run)

‎‎كي وردstatic در php

‎پس از اجراي تابع بطور عادي همه متغيرها حذف ميگردند .بعضي مواقع لازم است، حذف نشده ‎واستفاده شوند .براي اينكار متغير مورد نياز بايد با كي وردstatic درتابع تعريف شود.

‎مثال ـ در مثال زير متغير‎$x‎ ‎بصورتstatic تعريف شده است، وتا پايان باقي ميماند .

 <?php 
 <?php 
function myTest() {
  static $x = 0;
  echo $x;
  $x++;
}

myTest();
myTest();
myTest();
?> 

--(go to editor for change code and run)

‎دراين مثال هرموقع كه تابعmytest()‎اجرا شود، ارآخرين مقدار متغير‎$x‎ ‎درآخرين اجراي تابع‎ mytest()‎‎ استفاده ميشود .

‎توجه ـ متغير‎ $x‎ ،همچنان براي تابع متغير محلي است ‎ميتوان ازآن خارج تابع استفاده نمود.


Previous >    <Next