التصريح بنوع القيمة المرجعة
جزء من قسم الأساسيات في رحلة 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 مع قيمة. إن الجمع بين أنواع المعلمات وأنواع القيم المعادة يجعل دوالك موضِّحةً لذاتها: فأي شخص يقرأ الشيفرة يعرف فورًا ما الذي يدخل إليها وما الذي يخرج منها.
التحدي
سهلاقرأ سطرين من الإدخال:
- سعرًا كعدد عشري (مثلًا،
49.99) - نسبة خصم كعدد صحيح (مثلًا،
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);
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوصتدرّب بنفسك: مترجم PHP عبر الإنترنت