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

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

1405/04/16 01:14 محراب حسن زاده
آموزش جامع پارامترها و مقادیر بازگشتی در 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).

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش جامع اعتبارسنجی حجم و نوع فایل آپلودی در PHP طبق استانداردهای امنیتی گوگل
1405/05/01 20:20

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

مطالعه بیشتر
آموزش گام به گام ساخت سیستم لاگین و لاگ‌اوت در PHP به صورت ایمن
1405/05/14 22:13

آموزش گام به گام ساخت سیستم لاگین و لاگ‌اوت در PHP به صورت ایمن

مطالعه بیشتر
آموزش ایجاد تگ‌های صفحه‌بندی در HTML و CSS: طراحی و استایل‌دهی pagination
1402/05/29 21:27

آموزش ایجاد تگ‌های صفحه‌بندی در HTML و CSS: طراحی و استایل‌دهی pagination

مطالعه بیشتر
استفاده از setTimeout و setInterval در جاوا اسکریپت: آموزش کامل و مثال‌ها
1403/07/29 20:46

استفاده از setTimeout و setInterval در جاوا اسکریپت: آموزش کامل و مثال‌ها

مطالعه بیشتر
آموزش مدیریت Box Model و ترکیب اجزای آن با CSS: کنترل دقیق فاصله‌ها و ابعاد عناصر
1402/06/05 23:30

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

مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
1402/11/02 23:23

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

مطالعه بیشتر
چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان
1402/07/02 21:37

چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
1403/07/28 21:31

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
معرفی DOM و اصول آن در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1403/08/01 20:30

معرفی DOM و اصول آن در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع
1403/08/11 20:59

ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع

مطالعه بیشتر
آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو
1402/05/21 23:48

آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو

مطالعه بیشتر
آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol
1403/08/10 21:33

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol

مطالعه بیشتر

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