مدي المتغيرات (variable scope)
هناك متغيرات محلية (local) ومتغيرات عامة (global) ، نقصد بالمتغيرات المحلية التي تكون في داخل الدالة ونقصد بالعامة التي تكون في كود الـPHP بشكل عام
مثال
كود:
<? 
//هذا متغير عام 
$r= “salem”; 
function ala($s)
{
//هذا متغير محلى
$s = “progrramer”; 
} 
echo $r ;
ala($s);
echo $s;
?>
مثال :
كود:
<? 
//هذا متغير عام 
$r= “salem”; 
function ala($s)
{
//هذا متغير محلى
$s = “progrramer”; 
} 
echo $r ;
$s=10;
echo $s;
?>
في المثال الأول استطعنا طباعة المتغير $r ولم نسطتع طباعة المتغير $s لأنه محلى (لايتم تنفيذه الا داخل الدالة ) وعندما نريد طباعته فإننا يجب أن نطبع ناتج الدالة لكي نحصل عليه (أي أننا لانستطيع طباعته بشكل مباشر )
مثال :
كود:
<? 
//هذا متغير عام 
$r = “salem”; 
function ala($s)
{
//هذا متغير محلى
$s = “programmer”; 
} 
//استطعنا طباعته بشكل مباشر
echo $r ;
ala($s);
//يجب استخدام الداله لكي يتم طباعته 
echo ala($s);
?>
لاحظ أننا حتي لو قمنا بعملية طباعة المتغير من نفس الدالة فالناتج يكون مختلف لأن لكل متغير عالمه الخاص به
لكي نقوم بجعل المتغير الذي بداخل الدالة متغيراً عاماً فيمكننا ذلك بإحدي الطريقيتن التاليتين :
الطريقة الأولى :
كود:
<?
function ala($y)
{
echo $y. “<br>”; 
global $s;
$s = "programmer";
return ;
}
$f =10;  
ala($f);
echo $s;
?>
لاحظ أننا عندما استخدمنا global في داخل الدالة لكي يتم تعريف أن المتغير متغير عام وبعدما قمنا باستخدام الدالة قامت بطباعة المتغير المراد طباعته ومن ثم بعد ذلك قامت بتعريف متغير جديد ($s) وهذا المتغير متغير عام لأننا وضعنا قبله الكلمة global فاستطعنا طباعته بكل سهوله .




الطريقة الثانيه : هي أن نستخدم المصفوفة $GLOBALS التي تستخدم في PHP لتعريف المتغيرات العامة أيضا
مثال :
كود:
<?
function ala($y)
{	
echo $y. “<br>”; 
$GLOBALS[“s”] ;
$s = "programmer";
return ;
}
$f =10;  
ala($f);
echo $s;
?>