Làm việc với đệ quy trong PHP
Trong lập trình có một khái niệm gọi là
đệ quy - đây là khi một hàm gọi
chính nó. Hãy xem xét một ví dụ.
Hãy in các số từ 1
đến 10 bằng cách sử dụng đệ quy:
<?php
$i = 1;
function func()
{
global $i;
echo $i;
$i++;
if ($i <= 10){
func(); // ở đây hàm gọi chính nó
}
}
func();
?>
Hãy thảo luận về cách đoạn mã này hoạt động.
Chúng ta có biến toàn cục $i
và hàm func, bên trong nó, nội dung
của biến $i được in ra console,
và sau đó thực hiện ++.
Nếu biến $i của chúng ta nhỏ hơn hoặc
bằng 10, thì hàm được gọi lại.
Vì biến $i là toàn cục,
nên với mỗi lần gọi hàm mới, trong nó
sẽ có giá trị của biến $i
được thiết lập từ lần gọi trước.
Kết quả là hàm sẽ tự gọi chính nó
cho đến khi $i trở thành
lớn hơn 10.
Lưu ý rằng trong trường hợp của chúng ta, không thể chạy hàm
mà không có if - nếu làm điều này,
sẽ dẫn đến việc gọi hàm vô hạn.