نکته شماره 5 : فراخوانی توابع از مرجع
همانطور که در مباحث قبلی در مورد روش مقدار دهی بر اساس مرجع توضیح دادم در اینجا میخوام در خصوس روش فراخوانی توابع از طریق مرجع برایتون توضیح بدم .
اول به این تابع توجه کنید :
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 نیز تغییر کرده اند .