رفتن به مطلب

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


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

سلام دوستان

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

<?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 کنیم.

 

موفق باشید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...