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<?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.