Đệ quy trong PHP là quá trình trong đó một phương thức gọi lại chính nó một cách liên tiếp. Một phương thức trong php gọi lại chính nó được gọi là phương thức đệ quy.
Sử dụng đệ quy giúp code chặt chẽ hơn nhưng sẽ khó để hiểu hơn.
Cú pháp:
return_type function_name() { // code function_name(); }
Nội dung chính
Ví dụ về đệ quy trong php
Dưới đây là các ví dụ về cách sử dụng đệ quy trong php.
Ví dụ 1: vòng lặp vô tận
Bạn nên ngừng load trang hoặc tắt trình duyệt tránh bị đơ máy vì vòng lặp vô hạn.
<?php function p() { echo "hello <br>"; p(); } p(); ?>
Kết quả:
hello hello ...
Ví dụ 2: vòng lặp có hạn
<?php function p($count) { if ($count <= 5) { echo("hello $count <br>"); p($count + 1); } } // gọi hàm p() p(1); ?>
Kết quả:
hello 1 hello 2 hello 3 hello 4 hello 5
Ví dụ 3: tính giai thừa
<?php function giaithua($n) { if ($n == 1) return 1; else return ($n * giaithua($n - 1)); } // tính giai thừa của 5 echo "Giai thừa của 5 là:" . giaithua(5); ?>
Kết quả:
Giai thừa của 5 là: 120
Chương trình trên hoạt động như sau:
giaithua(5) giaithua(4) giaithua(3) giaithua(2) giaithua(1) return 1 return 2*1 = 2 return 3*2 = 6 return 4*6 = 24 return 5*24 = 120
Ví dụ 4: dẫy số Fibonacci
<?php function printFibonacci($count) { static $n1 = 0; static $n2 = 1; static $n3 = 0; if ($count > 0) { $n3 = $n1 + $n2; $n1 = $n2; $n2 = $n3; echo (" " . $n3); printFibonacci($count - 1); } } printFibonacci(15); ?>
Kết quả:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377