SadraHkm 20 ارسال شده در مرداد 97 گزارش بازنشر ارسال شده در مرداد 97 سلام دوستان لطفا یه نگاهی به این کد بندازید <?php function sum2($num1, $num2, &$s) { $s = $num1 + $num2; } $s = 0; sum (2 , 3 , $s); echo $s ; من نفهمیدم این متغیر s که قرار داده شده داره چیکار میکنه ؟ الان این متغیر که بصورت پوینتر قرار داده شده، چطور داره کار میکنه ؟ من اصلا از روند این تابع هیچی نفهمیدم . اگر میشه لطف کنید کمی در مورد این کد و اون متغیر پوینتر توضیح بدید. ممنون نقل قول لینک به ارسال
فرحان 997 ارسال شده در مرداد 97 گزارش بازنشر ارسال شده در مرداد 97 سلام. خوب واضح هست دیگه توی اون تابع عمل جمع انجام میشه و توی متغییر $s قرار میگیره. از اونجا که $s با & ارسال شده به تابع، اون تابع میفهمه که منظور از $s متغیر خارج از scope خودش هست و متغییر جدیدی نمیسازه و در نهایت هم با تغییر مقدار $s در داخل تابع، مقدار $s در خارج هم تغییر میکنه و مقدارش میشه مقدار حاصل جمع 2 و 3 که 5 هست. تابع شما معادل هست با تابع زیر : function sum($a, $b){ return $a + $b; } $s = sum($a, $b); echo $s; توی تابع بالا فقط عمل جمع انجام شده و ما میتونیم به راحتی اون رو بازگشت بدیم. به همین دلیل ممکنه براتون مبهم باشه که چرا توی مثال خودتون از & استفاده شده. علتش اینه که گاهی اوقات ما نیاز داریم از یه تابع بیش از یه مقدار رو برگردونیم. مثلا یه تابع داریم که هم ضرب و هم جمع رو می خواد حساب کنه. میتونیم متغییر سومی رو به صورت & ارسال کنیم و حاصلضرب رو توی اون قرار بدیم و حاصل جمع رو return کنیم. موفق باشید. نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .