رفتن به مطلب

راهنمایی در کد تابع


پست های پیشنهاد شده

سلام دوستان

لطفا یه نگاهی به این کد بندازید

<?php
function sum2($num1, $num2, &$s)
{
    $s = $num1 + $num2;
}
$s = 0;
  sum (2 , 3 , $s);
echo $s ;

من نفهمیدم این متغیر s که قرار داده شده داره چیکار میکنه ؟ الان این متغیر که بصورت پوینتر قرار داده شده، چطور داره کار میکنه ؟

من اصلا از روند این تابع هیچی نفهمیدم . اگر میشه لطف کنید کمی در مورد این کد و اون متغیر پوینتر توضیح بدید.

ممنون

لینک به ارسال

سلام. خوب واضح هست دیگه توی اون تابع عمل جمع انجام میشه و توی متغییر $s قرار میگیره. از اونجا که $s با & ارسال شده به تابع، اون تابع میفهمه که منظور از $s متغیر خارج از scope خودش هست و متغییر جدیدی نمیسازه و در نهایت هم با تغییر مقدار $s در داخل تابع، مقدار $s در خارج هم تغییر میکنه و مقدارش میشه مقدار حاصل جمع 2 و 3 که 5 هست.

تابع شما معادل هست با تابع زیر :

function sum($a, $b){
	return $a + $b;
}

$s = sum($a, $b);
echo $s;

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

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

 

موفق باشید.

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...