Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ## Bagaimana Anda Boleh Mencapai Fungsi Rekursif Tanpa Nama dalam PHP?

## Bagaimana Anda Boleh Mencapai Fungsi Rekursif Tanpa Nama dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-10-25 08:04:02929semak imbas

## How Can You Achieve Anonymous Recursive Functions in PHP?

Fungsi PHP Rekursif Tanpa Nama: Disahkan

Dalam bidang pembangunan PHP, persoalan mencipta fungsi rekursif tanpa nama sering timbul. Fungsi tanpa nama pada asasnya ialah penutupan yang tidak mempunyai nama khusus dan ditakrifkan dalam badan fungsi lain. Rekursi, sebaliknya, ialah teknik di mana fungsi memanggil dirinya sendiri dalam definisinya sendiri, membenarkan penyelesaian berulang bagi masalah yang kompleks.

Pertimbangkan percubaan ini pada fungsi rekursif tanpa nama:

<code class="php">$factorial = function( $n ) use ( $factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>

Walau bagaimanapun, seperti yang mungkin diperhatikan, pelaksanaan ini gagal menghantar nama fungsi ke panggilan rekursif. Untuk membetulkan isu ini, kami memperkenalkan konsep menghantar fungsi tanpa nama melalui rujukan:

<code class="php">$factorial = function( $n ) use ( &amp;$factorial ) {
    if( $n == 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>

Dengan melepasi pembolehubah $factorial melalui rujukan (iaitu, menggunakan simbol &), kami memastikan bahawa fungsi tanpa nama boleh mengakses nilai pembolehubah asal dan mengubah suainya dengan sewajarnya. Ini membolehkan panggilan rekursif yang berjaya dalam fungsi tanpa nama, membuka jalan kepada kemungkinan yang menarik dalam pembangunan PHP.

Atas ialah kandungan terperinci ## Bagaimana Anda Boleh Mencapai Fungsi Rekursif Tanpa Nama dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn