Bolehkah sesiapa menerangkan kepada saya fungsi rekursif dalam PHP (tanpa menggunakan Fibonacci) dalam istilah awam dan menggunakan contoh? Saya sedang melihat contoh tetapi Fibonacci hilang sepenuhnya pada saya!
Terima kasih terlebih dahulu ;-) Selain itu, berapa kerap anda menggunakannya dalam pembangunan web?
Salah satu contoh ialah mencetak setiap fail dalam mana-mana subdirektori bagi direktori tertentu (jika tiada pautan sym dalam direktori tersebut, ini mungkin merosakkan fungsi dalam beberapa cara). Kod pseudo untuk mencetak semua fail adalah seperti berikut:
Ideanya adalah untuk mencetak semua subdirektori dahulu dan kemudian fail direktori semasa. Idea ini berfungsi untuk semua subdirektori, itulah sebabnya fungsi ini dipanggil secara rekursif untuk semua subdirektori.
Jika anda ingin mencuba contoh ini, anda perlu menyemak direktori khas
.
和..
,否则你会陷入调用printAllFiles(". ")
一直如此。此外,您必须检查要打印的内容以及当前的工作目录是什么(请参阅opendir()
、getcwd()
...).Istilah orang awam:
Fungsi rekursif ialah fungsi yang memanggil dirinya sendiri
Pergi lebih dalam sedikit:
Jika fungsi terus memanggil dirinya sendiri, bagaimana ia tahu bila hendak berhenti? Anda menetapkan syarat, dipanggil kes asas. Kes asas memberitahu panggilan rekursif kami masa untuk berhenti, jika tidak, ia akan gelung tanpa had.
Bagi saya, contoh yang bagus untuk dipelajari ialah Factorial一个>. Dari komen di bawah nampaknya fungsi faktorial agak banyak, saya akan tinggalkan di sini sekiranya anda memerlukannya.