توابع (Functions)

ایجاد بلوک‌های کد قابل استفاده مجدد با توابع — پارامتر، مقدار برگشتی، آرگومان پیش‌فرض و توابع پیکانی

تابع چیست؟

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

تعریف تابع ساده

<?php
function sayHello() {
    echo "سلام دنیا!";
}

// فراخوانی تابع
sayHello();
sayHello();
?>

تابع با پارامتر

پارامتر ورودی‌هایی هستند که به تابع می‌دهید:

<?php
function greet($name) {
    echo "سلام $name!";
}

greet("علی");   // سلام علی!
greet("مریم");  // سلام مریم!
?>

چند پارامتر

<?php
function add($a, $b) {
    echo $a + $b;
}

add(5, 3);  // 8
?>

مقدار برگشتی — return

تابع می‌تواند با return مقدار برگرداند:

<?php
function multiply($a, $b) {
    return $a * $b;
}

$result = multiply(4, 5);
echo $result;  // 20
?>
بعد از return، تابع متوقف می‌شود و کدهای بعدی اجرا نمی‌شوند.

پارامتر پیش‌فرض

می‌توانید برای پارامترها مقدار پیش‌فرض تعیین کنید:

<?php
function greet($name = "مهمان") {
    echo "سلام $name!";
}

greet();        // سلام مهمان!
greet("علی");   // سلام علی!
?>
پارامترهای پیش‌فرض باید آخر بیایند. نمی‌توانید قبل از آن‌ها پارامتر بدون پیش‌فرض بگذارید.

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

<?php
function add(int $a, int $b): int {
    return $a + $b;
}

echo add(5, 3);  // 8
?>

انواع قابل تعیین

نوعتوضیح
intعدد صحیح
floatعدد اعشاری
stringرشته
boolبولین
arrayآرایه
?intعدد یا null

توابع پیکانی (Arrow Functions) — PHP 7.4+

برای توابع کوتاه و ساده:

<?php
$multiply = fn($a, $b) => $a * $b;

echo $multiply(4, 5);  // 20
?>

مثال کاربردی

<?php
function calculateBMI($weight, $height) {
    $bmi = $weight / ($height * $height);
    
    if ($bmi < 18.5) {
        return "کم‌وزن";
    } elseif ($bmi < 25) {
        return "نرمال";
    } elseif ($bmi < 30) {
        return "اضافه‌وزن";
    } else {
        return "چاق";
    }
}

echo calculateBMI(70, 1.75);  // نرمال
?>

این مبحث بخشی از دوره آموزش کامل PHP است.

ابزارهای مرتبط