ال Recursion، ما هي؟ نظرة عامة و فهم عام!، -من الاساسيات-
ال Recursion هي تقنية مفيدة لحل المشاكل عن طريق تقسيمها إلى base case و recursive case.
تقنيا؛ هي لما تقوم دالة function بالنداء على نفسها داخل الكود. من أشهر الأمثلة على استخدامها هي طريقة/تقنية divide-and-conquer، اللي تُستخدم كثير في حل المشاكل المعقدة بطريقة ذكية و سريعة.
لكن لو نسيت تحدد base case، ممكن الكود يدخل في infinite loop ويوقف التطبيق تماما.
مثال بسيط يوضح المشكلة:
function countdown($number) {
echo $number . "\n";
countdown($number - 1);
}
countdown(20);
الكود أعلاه سيستمر في إستدعاء نفسه إلى ما لا نهاية.. لأنه لا يتوفر على شرط يوقف الـ recursion.
الحل: استخدم الـ base case
function countdown($number) {
if ($number <= 0) {
return;
}
echo $number . "\n";
countdown($number - 1);
}
في هذا المثال:
if ($number <= 0) { return; } ==> the base case
countdown($number - 1); ==> recursive case.
أنا استخدمت early return بدل if/else لأن القراءة أوضح (خيار شخصي).
الـ recursion من الناحية التقنية تستخدم نفس مفهوم الـ loops، ولا تعطيك أداء أعلى، لكن في بعض الحالات تكون أوضح وأسهل للفهم، خاصة لو كنت تتعامل مع هياكل متكررة أو المشاكل المعقدة و الضخمة.
#PHP #Recursion #ProgrammingTips #DX #CleanCode #Algorithms
>>Click here to continue<<