آموزش جامع پارامترها و مقادیر بازگشتی در 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، کدهای شما خواناتر، امنتر و خطایابی آنها بسیار سادهتر خواهد بود:
- همیشه از
declare(strict_types=1);استفاده کنید. - برای تمامی پارامترها و مقادیر بازگشتی نوع داده (Type) مشخص کنید.
- پارامترهای دارای مقدار پیشفرض را در سمت راست (انتهای لیست) قرار دهید.
- نام توابع را به صورت camelCase بنویسید (مانند:
calculateTotalAmount).
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید