SadraHkm

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

2 پست در این موضوع قرار دارد

سلام دوستان

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

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

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

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

ممنون

0

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

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

 

موفق باشید.

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری