همانطور که در مباحث قبلی در مورد روش مقدار دهی بر اساس مرجع توضیح دادم در اینجا میخوام در خصوس روش فراخوانی توابع از طریق مرجع برایتون توضیح بدم .

 

اول به این تابع توجه کنید :

 

Function addnumber($num1, $num2)
{
  $num1=$num1*2;

  $num2=$num2 / 3;

  Return($num1+$num2);

}


$a1=12;

$a2=6;

echo "Value Return as Function addnumber is : ".addnumber($a1,$a2)."
"; // retun 26

echo 'a1='.$a1.'  , a2='.$a2; // return num1=12 , num2=6


در این مثال همانطور که مشاهده مینمائید دو مقدار a1  و a2  مقدار دهی شده بعد به تابع  addnumber ارسال گردیده است . تابع بعد از چند عمل ریاضی ساده مقدار خروجی را ارسال نموده . با نمایش مقادیر اولیه مشاهده میکنید که آنها ( یعنی a1  و a2  ) تغییر نیافته اند .

 

اما حالا فرض کنید که میخواهید با ارسال پارامتر به تابع مقادیر ارسالیتون هم تغییر کنند .  برای این کار شما میتونید با استفاده از علامت & قبل از مقادیر دریافتی تابع این کار رو انجام بدید . این تغییراتو همراه با خروجی اون میتونید در این مثال ببیند :

 

 

Function addnumber(&$num1, &$num2)
{
  $num1=$num1*2;

  $num2=$num2 / 3;

  Return($num1+$num2);

}


$a1=12;

$a2=6;

echo "Value Return as Function addnumber is : ".addnumber($a1,$a2)."
"; // retun 26

echo 'num1='.$a1.'  , num2='.$a2; // return num1=12 , num2=6

 

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