التصريح بأنواع المعاملات
جزء من قسم Fundamentals في رحلة PHP على Coddy. الدرس 65 من 71.
تعد PHP لغة ضعيفة التنميط (loosely typed language)، مما يعني أن المتغيرات يمكنها تخزين أي نوع من البيانات. وفي حين أن هذه المرونة مريحة، إلا أنها قد تؤدي إلى أخطاء برمجية غير متوقعة عندما تستقبل دالة (function) نوعاً خاطئاً من الوسائط (argument). تتيح لك تصريحات النوع (Type declarations) تحديد الأنواع التي يجب أن تقبلها المعاملات (parameters) الخاصة بك بالضبط.
لإضافة تصريح النوع، ضع اسم النوع قبل المعامل:
<?php
function double(int $number) {
return $number * 2;
}
echo double(5);
?>ينتج عن هذا 10. إن int قبل $number يخبر PHP أن هذه الدالة تتوقع عدداً صحيحاً. إذا قام شخص ما بتمرير سلسلة نصية مثل "hello"، سيقوم PHP بإنتاج خطأ بدلاً من التسبب في مشاكل بصمت لاحقاً.
يمكنك استخدام تصريحات النوع مع معلمات متعددة:
<?php
function greetUser(string $name, int $age) {
return "$name is $age years old.";
}
echo greetUser("Alice", 25);
?>تتضمن تعريفات الأنواع الشائعة int، و float، و string، و bool، و array. استخدامها يجعل كودك أكثر قابلية للتنبؤ ويساعد في اكتشاف الأخطاء مبكرًا، خاصة مع نمو برامجك.
التحدي
سهلاقرأ ثلاثة أسطر من المدخلات:
- الاسم الأول للشخص (على سبيل المثال،
Alice) - اسم العائلة للشخص (على سبيل المثال،
Smith) - سنة الميلاد (على سبيل المثال،
1995)
أنشئ دالة تسمى createProfile تقبل ثلاثة معاملات مع تصريحات النوع:
$firstNameكـstring$lastNameكـstring$birthYearكـint
يجب أن تحسب الدالة عمر الشخص (افترض أن السنة الحالية هي 2024) وتعيد سلسلة نصية بالتنسيق التالي:
[firstName] [lastName] is [age] years old.استدعِ الدالة مع قيم المدخلات واطبع النتيجة المعادة.
مثال 1:
إذا كانت المدخلات هي Alice، و Smith، و 1995، يجب أن يكون المخرج:
Alice Smith is 29 years old.مثال 2:
إذا كانت المدخلات هي Bob، و Johnson، و 2000، يجب أن يكون المخرج:
Bob Johnson is 24 years old.مثال 3:
إذا كانت المدخلات هي Emma، و Davis، و 1988، يجب أن يكون المخرج:
Emma Davis is 36 years old.جرّب بنفسك
<?php
// قراءة المدخلات
$firstName = trim(fgets(STDIN));
$lastName = trim(fgets(STDIN));
$birthYear = intval(fgets(STDIN));
// TODO: إنشاء دالة createProfile مع تصريحات النوع
// يجب أن تقبل الدالة firstName$ (سلسلة نصية)، و lastName$ (سلسلة نصية)، و birthYear$ (عدد صحيح)
// حساب العمر (السنة الحالية هي 2024) وإرجاع السلسلة النصية المنسقة
// استدعاء الدالة وطباعة النتيجة
echo createProfile($firstName, $lastName, $birthYear);
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوصتدرّب بنفسك: مترجم PHP عبر الإنترنت