26/08/2018, 17:03

Đệ quy trong PHP

PHP Đệ 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 ...

PHP

Đệ 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();
}  

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
PHP
0