Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ## Bolehkah Fungsi PHP Menjadi Tanpa Nama Secara Rekursif? Menyelam Mendalam ke dalam Rujukan Fungsi dan Rekursi.

## Bolehkah Fungsi PHP Menjadi Tanpa Nama Secara Rekursif? Menyelam Mendalam ke dalam Rujukan Fungsi dan Rekursi.

Linda Hamilton
Linda Hamiltonasal
2024-10-25 07:59:02667semak imbas

## Can PHP Functions Be Recursively Anonymous?  A Deep Dive into Function References and Recursion.

Bolehkah Fungsi PHP Menjadi Tanpa Nama secara Rekursif?

Dalam PHP, kemungkinan mencipta fungsi yang bersifat rekursif dan tanpa nama telah membingungkan pengaturcara. Soalan ini timbul kerana penggunaan biasa nama fungsi untuk rekursi. Walau bagaimanapun, seperti yang ditunjukkan oleh contoh yang diberikan, fungsi tanpa nama rekursif sememangnya boleh dilaksanakan dalam PHP.

Kod yang disediakan, cuba mengira pemfaktoran nombor menggunakan rekursi dalam fungsi tanpa nama, menghadapi cabaran apabila menghantar masuk nama fungsi. Untuk menyelesaikan masalah ini, adalah penting untuk lulus fungsi sebagai rujukan. Dengan menambahkan ampersand (&) sebelum $factorial dalam pernyataan penggunaan, fungsi itu sendiri tersedia dalam fungsi tanpa nama.

Berikut ialah kod yang diubah suai:

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

Dengan pengubahsuaian ini, function $factorial kini boleh merujuk dirinya sendiri secara rekursif, membenarkan pengiraan faktorial yang diingini berfungsi dengan betul.

Atas ialah kandungan terperinci ## Bolehkah Fungsi PHP Menjadi Tanpa Nama Secara Rekursif? Menyelam Mendalam ke dalam Rujukan Fungsi dan Rekursi.. 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