سطح B: توابع هوشمند (ورودی و خروجی)

تابعی که ورودی نگیرد و خروجی ندهد، فقط یک "ضبط صوت" است. توابع واقعی "محاسبه‌گر" هستند.

۱. تفاوت Echo و Return

اشتباه رایج: دستور echo نتیجه را فوراً روی صفحه "چاپ" می‌کند. دستور return نتیجه را به برنامه "پس می‌دهد" تا بتوانیم روی آن محاسبه بعدی انجام دهیم یا در دیتابیس ذخیره کنیم.
function sum($a, $b) {
    return $a + $b; // چاپ نکن! فقط محاسبه کن و بده به من.
}

$result = sum(10, 5); // مقدار ۱۵ داخل متغیر ریخته شد
echo "قیمت نهایی: " . $result . " تومان";

تمرین و چالش

تمرین ۱: محاسبه‌گر مساحت

تابعی به نام calcArea($width, $height) بنویسید که طول و عرض را بگیرد و مساحت مستطیل را return کند. سپس خروجی را در یک جمله چاپ کنید.

تمرین ۲: تشخیص قبولی (Bool)

تابعی به نام isPassed($score) بنویسید.

  • اگر نمره بالای ۱۰ بود، true برگرداند.
  • اگر نمره زیر ۱۰ بود، false برگرداند.
  • در بیرون تابع، با یک if و استفاده از این تابع، پیام "تبریک" یا "تلاش بیشتر" را چاپ کنید.

چالش هوش مصنوعی: Type Hinting

در PHP های جدید، می‌توانیم نوع ورودی را اجبار کنیم (مثلاً بگوییم ورودی حتماً باید عدد باشد).
تکلیف: از هوش مصنوعی بپرسید: "چگونه در تعریف تابع PHP مشخص کنم که ورودی‌ها حتماً باید عدد صحیح (int) باشند تا اگر کاربر رشته فرستاد، برنامه خطا دهد؟"