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

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 07:54:29283semak imbas

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

Fungsi Rekursif Tanpa Nama dalam PHP

Dalam PHP, konsep fungsi tanpa nama, juga dikenali sebagai fungsi lambda, menawarkan cara yang mudah untuk menentukan berfungsi sebaris tanpa menyatakan nama rasmi. Walau bagaimanapun, apabila ia berkaitan dengan rekursi, fungsi tanpa nama menghadapi cabaran yang unik.

Isunya:

Apabila cuba mencipta fungsi tanpa nama rekursif, nampaknya nama fungsi tidak dihantar ke rekursi dengan betul. Isu ini timbul kerana, tidak seperti fungsi biasa dengan nama yang ditentukan, fungsi tanpa nama tidak mempunyai rujukan kepada diri mereka sendiri.

Penyelesaian:

Untuk menyelesaikan isu ini, anda perlu lulus fungsi tanpa nama sebagai rujukan dalam pernyataan penggunaan. Ini boleh dicapai dengan menambahkan ampersand (&) sebelum nama fungsi, seperti yang ditunjukkan dalam kod berikut:

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

print $factorial( 5 ); // Output: 120</code>

Dengan menghantar fungsi tanpa nama sebagai rujukan, anda mewujudkan sambungan antara panggilan rekursif dan definisi fungsi asal, membenarkannya mengakses keadaan dalamannya sendiri. Ini membolehkan rekursi berfungsi seperti yang dijangkakan dan anda boleh berjaya mengira nilai faktorial.

Atas ialah kandungan terperinci ## Bagaimana Anda Boleh Melaksanakan Fungsi Tanpa Nama Rekursif 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