לרקורסיה שלך פה אני שום משמעות, נגיד והגעת לסוף הרקורסיה, זה פשוט מעביר את ה-1,
אתה לא מחבר פה שום דבר לשום דבר, אז למה שזה יחבר לך את האחדות?
למה זה לא מדפיס? כי באחד השלבים של הרקורסייה אף אחד מהתנאים לא מתקיים,
ולכן הפונקציה לא מחזירה שום דבר, אתה יכול לבדוק ע"י זה שתסים בסוף
return "test"; ותראה.
קוד:
<?php
function ck($x,$a,$b,$c,$l=0) {
if ($l==$x)
return 1;
if (($l+$a)<=$x)
return ck($x,$a,$b,$c,$l+$a);
if (($l+$b)<=$x)
return ck($x,$a,$b,$c,$l+$b);
if (($l+$c)<=$x)
return ck($x,$a,$b,$c,$l+$c);
// אם שום דבר לא התקיים
return "test";
}
var_dump ( ck(10,3,7,2) );
?>