Menu
CoddyTech
flag Ar iconالعربيةdown icon

التصريح بنوع القيمة المرجعة

جزء من قسم الأساسيات في رحلة PHP على Coddy. الدرس 66 من 71.

تمامًا كما يمكنك تعريف أنواع للمعلمات، يمكنك أيضًا تحديد نوع القيمة التي يجب أن تعيدها function. تخبر تعريفات نوع Return لغة PHP بدقة بنوع القيمة التي سترسلها function إلى الخلف، مما يساعد على اكتشاف الأخطاء عندما تُعيد function عن طريق الخطأ نوعًا غير صحيح.

لإضافة نوع return، ضع نقطتين يتبعهما type بعد القوس المغلق لقائمة Parameter:

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

echo add(5, 3);
?>

يُخرج هذا 8. يعلن : int بعد الأقواس أن هذه الـ function يجب أن تُعيد عددًا صحيحًا. إذا حاولت إعادة string بدلًا من ذلك، فسيُصدر PHP خطأً.

يمكنك استخدام الأنواع نفسها كإعلانات للمعلمات: int وfloat وstring وbool وarray. وهناك أيضًا نوع خاص يُسمى void للدوال التي لا تُعيد أي شيء:

<?php
function sayHello(string $name): void {
    echo "Hello, $name!\n";
}

sayHello("Alice");
?>

لا يمكن للدالة من النوع void أن تحتوي على تعليمة return مع قيمة. إن الجمع بين أنواع المعلمات وأنواع القيم المعادة يجعل دوالك موضِّحةً لذاتها: فأي شخص يقرأ الشيفرة يعرف فورًا ما الذي يدخل إليها وما الذي يخرج منها.

challenge icon

التحدي

سهل

اقرأ سطرين من الإدخال:

  1. سعرًا كعدد عشري (مثلًا، 49.99)
  2. نسبة خصم كعدد صحيح (مثلًا، 20)

أنشئ function تُسمّى calculateFinalPrice وتقبل Parameterَين مع type declarations:

  • $price من النوع float
  • $discountPercent من النوع int

يجب أن تحتوي function على type declaration من النوع float لـ return، وينبغي أن تُعيد السعر final بعد applying الخصم.

استدعِ function باستخدام قيم الإدخال واطبع result المُعاد.

مثال 1:

إذا كانت قيم الإدخال هي 100.00 و25، فينبغي أن يكون الناتج:

75

مثال 2:

إذا كانت قيم الإدخال هي 49.99 و10، فينبغي أن يكون الناتج:

44.991

مثال 3:

إذا كانت قيم الإدخال هي 200.50 و50، فينبغي أن يكون الناتج:

100.25

جرّب بنفسك

<?php
// اقرأ الإدخال
$price = floatval(fgets(STDIN));
$discountPercent = intval(fgets(STDIN));

// TODO: أنشئ دالة تسمى calculateFinalPrice مع:
// - معامل $price مع تصريح النوع float
// - معامل $discountPercent مع تصريح النوع int
// - تصريح نوع الإرجاع float
// يجب أن تُرجع الدالة السعر النهائي بعد تطبيق الخصم


// استدعِ الدالة واطبع النتيجة
echo calculateFinalPrice($price, $discountPercent);
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم PHP عبر الإنترنت