آموزش رایگان PHP

آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)

16م تیر 1405 محراب حسن زاده
آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)

مقدمه‌ای بر توابع در PHP

توابع یکی از ارکان اصلی برنامه‌نویسی ساختاریافته و شیءگرا هستند. در زبان PHP، نوشتن توابع به ما کمک می‌کند تا از تکرار کدها جلوگیری کنیم و قابلیت نگهداری پروژه را افزایش دهیم. بر اساس راهنماهای سبک کدنویسی گوگل و استانداردهای مدرن PHP (مانند PSR-12)، تعریف دقیق ورودی‌ها (پارامترها) و خروجی‌ها (مقادیر بازگشتی) از اهمیت ویژه‌ای برخوردار است.

پارامترها و آرگومان‌ها در PHP چیستند؟

بسیاری از اوقات واژه‌های پارامتر (Parameter) و آرگومان (Argument) به جای یکدیگر استفاده می‌شوند، اما تفاوت ظریفی بین آن‌ها وجود دارد:

  • پارامتر: متغیرهایی هستند که در زمان تعریف تابع، داخل پرانتز معرفی می‌شوند.
  • آرگومان: مقادیر واقعی هستند که در زمان فراخوانی تابع، به آن پاس داده می‌شوند.

تعریف یک تابع ساده با پارامتر

در ساده‌ترین حالت، یک تابع می‌تواند پارامترهایی را دریافت کرده و عملیاتی روی آن‌ها انجام دهد:



function greet($name) {
    return "سلام " . $name . "!";
}

echo greet("علی"); // خروجی: سلام علی!

تعیین نوع داده پارامترها (Type Hinting)

در نسخه‌های جدید PHP (نسخه 7 به بالا)، شما می‌توانید نوع داده‌ای که یک پارامتر باید دریافت کند را مشخص کنید. این کار از ورود داده‌های ناخواسته و بروز خطاهای پیش‌بینی نشده جلوگیری می‌کند.



function calculateArea(float $width, float $height) {
    return $width * $height;
}

echo calculateArea(5.5, 10); // خروجی: 55

فعال‌سازی حالت سخت‌گیرانه (Strict Types)

به طور پیش‌فرض، PHP تلاش می‌کند انواع داده‌ها را به یکدیگر تبدیل کند (Coercion). برای مثال اگر رشته "5" را به تابعی که انتظار عدد صحیح دارد پاس دهید، PHP آن را به عدد 5 تبدیل می‌کند. برای جلوگیری از این رفتار و بالا بردن امنیت و دقت کد، باید دستور declare(strict_types=1); را در اولین خط فایل PHP خود قرار دهید:



declare(strict_types=1);

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

// این فراخوانی در حالت Strict خطا (TypeError) ایجاد می‌کند:
// echo sum(5, "10"); 

echo sum(5, 10); // بدون خطا اجرا می‌شود

مقادیر پیش‌فرض پارامترها (Default Parameters)

شما می‌توانید برای پارامترها مقدار پیش‌فرض تعیین کنید تا در صورت ارسال نشدن آرگومان، از آن مقدار استفاده شود. بر اساس استاندارد گوگل، پارامترهای دارای مقدار پیش‌فرض باید همیشه در انتهای لیست پارامترها قرار گیرند:



function makeCoffee(string $type = "اسپرسو") {
    return "یک فنجان " . $type . " آماده است.";
}

echo makeCoffee(); // خروجی: یک فنجان اسپرسو آماده است.
echo makeCoffee("کاپوچینو"); // خروجی: یک فنجان کاپوچینو آماده است.

مقادیر بازگشتی در PHP (Return Values)

یک تابع می‌تواند پس از اجرای عملیات خود، مقداری را به برنامه‌ای که آن را فراخوانی کرده بازگرداند. برای این کار از کلمه کلیدی return استفاده می‌شود. پس از اجرای دستور return، اجرای تابع بلافاصله متوقف می‌شود.

تعیین نوع مقدار بازگشتی (Return Type Declarations)

در PHP مدرن می‌توانید نوع داده‌ای که تابع بازمی‌گرداند را بعد از پرانتز تعریف پارامترها و با استفاده از دو نقطه (:) مشخص کنید:



declare(strict_types=1);

function isEven(int $number): bool {
    return $number % 2 === 0;
}

var_dump(isEven(4)); // خروجی: bool(true)

مقادیر بازگشتی تهی و چندگانه (Nullable & Void)

نوع بازگشتی Void

اگر تابعی هیچ مقداری بازنمی‌گرداند (مثلاً فقط یک عملیات چاپ یا ذخیره در دیتابیس انجام می‌دهد)، نوع بازگشتی آن را باید void قرار دهید:



function logMessage(string $message): void {
    echo "[LOG]: " . $message;
}

نوع بازگشتی قابل تهی (Nullable Types)

اگر پارامتر یا مقدار بازگشتی می‌تواند علاوه بر نوع مشخص شده، مقدار null نیز داشته باشد، قبل از نام نوع داده از علامت سوال (?) استفاده می‌کنیم:



function getUserNickname(?string $name): ?string {
    if ($name === null) {
        return null;
    }
    return "کاربر " . $name;
}

نتیجه‌گیری و بهترین شیوه‌ها (Best Practices)

با رعایت این نکات بر اساس استانداردهای برنامه‌نویسی گوگل و مستندات PHP، کدهای شما خواناتر، امن‌تر و خطایابی آن‌ها بسیار ساده‌تر خواهد بود:

  1. همیشه از declare(strict_types=1); استفاده کنید.
  2. برای تمامی پارامترها و مقادیر بازگشتی نوع داده (Type) مشخص کنید.
  3. پارامترهای دارای مقدار پیش‌فرض را در سمت راست (انتهای لیست) قرار دهید.
  4. نام توابع را به صورت camelCase بنویسید (مانند: calculateTotalAmount).

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var
18م شهریور 1402

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

مطالعه بیشتر
راهنمای جامع معرفی PHP؛ تاریخچه، ویژگی‌ها و جایگاه آن در توسعه وب
14م خرداد 1405

راهنمای جامع معرفی PHP؛ تاریخچه، ویژگی‌ها و جایگاه آن در توسعه وب

مطالعه بیشتر
آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای
18م شهریور 1402

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

مطالعه بیشتر
آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
5م شهریور 1402

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

مطالعه بیشتر
آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش
2م شهریور 1403

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

مطالعه بیشتر
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
28م شهریور 1402

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
راهنمای کامل لیست‌ها در HTML: آموزش انواع و اصول سئو
20م مرداد 1402

راهنمای کامل لیست‌ها در HTML: آموزش انواع و اصول سئو

مطالعه بیشتر
آموزش کامل دستور switch-case در PHP (به همراه مثال‌های کاربردی)
4م تیر 1405

آموزش کامل دستور switch-case در PHP (به همراه مثال‌های کاربردی)

مطالعه بیشتر
مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها
4م مهر 1403

مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

مطالعه بیشتر
کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد
18م شهریور 1402

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

مطالعه بیشتر
آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع
4م شهریور 1402

آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع

مطالعه بیشتر
آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی
16م تیر 1405

آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی

مطالعه بیشتر

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