Recursive Function
function เรียกตัวเอง
MyTest(5); พอเข้า function ไป ก็วิ่งไป return 5 * MyTest(4) -> 3 2 1
มันก็เป็น (((1*2 = 2 )*3=6)*4=24)*5 ก็จะ return 120 มา
เออ อธิบายเองงงเอง ลอง search google เรื่อง Recursive Function php ดูครับ เยอะ
งงหนักเลย

ผมก็ว่างั้น งงกว่าเดิม ตอนเรียนผมก็งงเหมือนกัน เรียนในห้องเรียน อาจารย์สอนเรื่องนี้เรื่องเดียว ทั้งชั่วโมงเลยนะ มันคงไม่ง่ายมั้งถ้าจะ ตอบไม่กี่คำอ่ะ
recursive function ( ฟังชั่นแบบเรียกตัวเอง )
ชื่อก็บอกอยู่แล้วว่าเรียกตัวเอง อย่าง
function a($x) {
return a($x);
}
ตอนเราเรียก a(5); มันก็จะทำงานไปแล้วก็ไปเจอ a(5); อีกก็จะเรียกอีกไป เรื่อยๆ ติดลูปเลยตู ออกไม่ได้

ขำซะงั้น
ถ้าเคยเรียนความน่าจะเป็นมา จะรู้จัก factorial (!) ก็คือ n! = n x (n-1) x ... x 1 อย่าง 5! = 5 x 4 x 3 x 2 x1
ทำไมยกตัวอย่าง factorial เพราะ พอเจอเนื้อหาเกี่ยวกับ recursive function แทบทุกภาษาจะยกตัวอย่างเป็น หาค่า factorial นี่ล่ะ พอๆ กับ Hello World เลย

function MyTest($num) {
if($num == 1) return 1;
return $num * MyTest($num - 1);
}
echo MyTest(5);
ตอนแรกพอเราเรียก MyTest(5); ก้จะไปทำงาน MyTest(5) ก็
ทำไปถึง
return 5 * MyTest(5-1)
มันจะยังไม่ return ก็ต้องไปทำงาน MyTest(4) ต่อ
ก็จะไปเจอ
return 4 * MyTest(3) //MyTest(4)
return 3 * MyTest(2) //MyTest(3)
return 2 * MyTest(1) //MyTest(2)
พอมาถึง MyTest(1) ทำงานก็จะ return 1; ออกมา คราวนี้ไม่มีเรียกต่อแล้ว ก็ส่งค่ากลับ
MyTest(2) ก็ return 2*1 ,
MyTest(3) ก็ return 3*2 ,
MyTest(4) ก็ return 4*6 ,
MyTest(5) ก็ return 5*24 , return 120 ออกไป สำหรับ function MyTest(5) เนี่ย
ขออภัย อธิบายตามความเข้าใจอ่ะ