Rumah > pembangunan bahagian belakang > tutorial php > ## Bolehkah Fungsi PHP Menjadi Kedua-dua Rekursif dan Tanpa Nama?

## Bolehkah Fungsi PHP Menjadi Kedua-dua Rekursif dan Tanpa Nama?

Susan Sarandon
Lepaskan: 2024-10-26 02:08:28
asal
446 orang telah melayarinya

## Can PHP Functions Be Both Recursive and Anonymous?

Melaksanakan Fungsi Rekursif Tanpa Nama dalam PHP

Apabila memulakan tugas mencipta fungsi rekursif dalam PHP, seseorang mungkin bercita-cita untuk menyelubunginya dengan tanpa nama . Walau bagaimanapun, perangkap muncul dengan sendirinya apabila cuba menghantar nama fungsi sebagai hujah kepada dirinya sendiri, seperti yang ditunjukkan dalam kod di bawah.

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

Usaha ini akan terbukti sia-sia, meninggalkan anda dengan soalan yang berlarutan: bolehkah PHP fungsi menjadi rekursif dan tanpa nama?

Jawapannya terletak pada pemahaman mekanik rujukan pembolehubah. Untuk mewujudkan sambungan rekursif, fungsi mesti mempunyai rujukan kepada dirinya sendiri. Ini boleh dicapai dengan menghantar fungsi sebagai rujukan menggunakan operator '&'. Di bawah ialah contoh cara pengubahsuaian ini boleh menyahsekat rekursi tanpa nama:

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

Dengan pelarasan ini dilaksanakan, fungsi PHP melangkaui sempadan tanpa nama dan menggunakan kuasa rekursifnya dengan lancar.

Atas ialah kandungan terperinci ## Bolehkah Fungsi PHP Menjadi Kedua-dua Rekursif dan Tanpa Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan