إرجاع القيم
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 63 من 71.
تستخدم الدوال التي أنشأناها حتى الآن echo لعرض المخرجات مباشرة. ولكن في كثير من الأحيان، قد ترغب في أن تقوم الدالة بحساب شيء ما وإعادة النتيجة إليك، حتى تتمكن من استخدامها في مكان آخر في الكود الخاص بك. هنا يأتي دور جملة return.
تقوم جملة return بإرسال قيمة مرة أخرى إلى المكان الذي تم استدعاء الدالة منه:
<?php
function add($a, $b) {
return $a + $b;
}
$result = add(5, 3);
echo $result;
?>ينتج عن هذا 8. بدلاً من طباعة المجموع داخل الدالة، نقوم بإرجاعه. يتلقى الكود المستدعي تلك القيمة ويقوم بتخزينها في $result.
إرجاع القيم يجعل الدوال أكثر تنوعاً بكثير. يمكنك استخدام القيمة المرجعة في العمليات الحسابية، أو تمريرها إلى دوال أخرى، أو تخزينها لوقت لاحق:
<?php
function double($num) {
return $num * 2;
}
echo double(5) + double(3);
?>هذا يُخرج 16 (10 + 6). كل استدعاء لـ double() يُرجع قيمة تُستخدم في عملية الجمع.
شيء مهم يجب معرفته: عندما يصل PHP إلى جملة return، تتوقف الدالة فوراً. أي كود بعد return لن يتم تنفيذه.
التحدي
سهلاقرأ سطرين من المدخلات:
- رقم يمثل قاعدة المستطيل (على سبيل المثال،
5) - رقم يمثل ارتفاع المستطيل (على سبيل المثال،
3)
أنشئ دالة تسمى calculateArea تقبل معاملين: $base و $height. يجب أن تعيد الدالة مساحة المستطيل (القاعدة × الارتفاع).
استدعِ الدالة باستخدام قيم المدخلات، وقم بتخزين القيمة المعادة في متغير، واطبع النتيجة.
المثال 1:
إذا كانت المدخلات 5 و 3، يجب أن تكون المخرجات:
15المثال 2:
إذا كانت المدخلات 10 و 7، يجب أن تكون المخرجات:
70المثال 3:
إذا كانت المدخلات 12 و 4، يجب أن تكون المخرجات:
48ورقة مرجعية
تقوم جملة return بإرسال قيمة مرة أخرى إلى المكان الذي تم استدعاء الدالة منه، مما يسمح لك باستخدام النتيجة في مكان آخر في الكود الخاص بك:
<?php
function add($a, $b) {
return $a + $b;
}
$result = add(5, 3);
echo $result; // المخرجات: 8
?>يمكن استخدام القيم المرجعة في العمليات الحسابية أو تمريرها إلى دوال أخرى:
<?php
function double($num) {
return $num * 2;
}
echo double(5) + double(3); // المخرجات: 16
?>عندما يصل PHP إلى جملة return، تتوقف الدالة فوراً. أي كود بعد return لن يتم تنفيذه.
جرّب بنفسك
<?php
// قراءة المدخلات
$base = intval(fgets(STDIN));
$height = intval(fgets(STDIN));
// TODO: قم بإنشاء دالة تسمى calculateArea تقبل المعاملات $base و $height
// يجب أن تعيد الدالة المساحة (القاعدة × الارتفاع)
// TODO: قم باستدعاء الدالة مع قيم المدخلات وتخزين النتيجة في متغير
// طباعة النتيجة
echo $result;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص