توابع در PHP

تعریف توابع قابل‌استفاده مجدد، پارامترها، مقادیر پیش‌فرض، نوع بازگشتی و حوزه متغیرها (Scope).

نمای کلی

تابع یک بلاک کد مجزا است که برای انجام یک وظیفه مشخص نوشته می‌شود و می‌توان آن را بارها در طول برنامه فراخوانی کرد. توابع مانع تکرار کد (DRY) شده و ساختار برنامه را سازمان‌یافته، ماژولار و قابل تست می‌کنند.

تعریف و فراخوانی توابع

توابع با کلمه کلیدی function تعریف می‌شوند. می‌توانید برای ورودی‌ها مقدار پیش‌فرض در نظر بگیرید و نوع داده‌های ورودی و خروجی را برای افزایش دقت برنامه تعیین کنید.

function-demo.php
<?php

// Function with parameters, default value, and type hinting
function calculateTotal(float $price, float $taxRate = 0.09): float {
    return $price + ($price * $taxRate);
}

// Invoking functions
$itemTotal = calculateTotal(100.00);        // Uses default taxRate (109.0)
$customTotal = calculateTotal(100.00, 0.15); // Custom taxRate (115.0)

echo "Total: $" . $itemTotal;

?>

حوزه یا دامنه دسترسی متغیرها (Variable Scope)

متغیرهای تعریف شده خارج از تابع دارای حوزه **Global** هستند و مستقیماً داخل تابع در دسترس نیستند. متغیرهای درون تابع دارای حوزه **Local** بوده و فقط در همان تابع شناخته می‌شوند. برای نگه داشتن مقدار متغیر بین فراخوانی‌های متوالی می‌توان از کلمه کلیدی static استفاده نمود.

اشتباهات رایج در کار با توابع

دسترسی مستقیم به متغیرهای عمومی بدون global

توابع در PHP به متغیرهای بیرونی دسترسی مستقیم ندارند. اگر نیاز به متغیر عمومی دارید باید آن را به‌صورت پارامتر پاس دهید یا از global $var استفاده کنید (پاس دادن پارامتر ترجیح داده می‌شود).

فراموش کردن دستور return

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

تمرین عملی

تابعی بنویسید که نام، فامیل و سن یک کاربر را دریافت کرده و یک آرایه انجمنی شامل مشخصات کاربر و وضعیت بزرگسال بودن (bool) را بازگرداند.

بازگشت به نقشه راه