Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Fungsi PHP Rekursif Memerlukan Pengendalian Penyata Pemulangan Berhati-hati?

Mengapa Fungsi PHP Rekursif Memerlukan Pengendalian Penyata Pemulangan Berhati-hati?

Barbara Streisand
Lepaskan: 2024-12-30 04:07:15
asal
489 orang telah melayarinya

Why Do Recursive PHP Functions Need Careful Return Statement Handling?

Menggunakan Penyata Pulangan dalam Fungsi Rekursif PHP

Dalam PHP, fungsi rekursif menyediakan mekanisme yang berkuasa untuk pengiraan berulang. Walau bagaimanapun, apabila berurusan dengan fungsi rekursif, penggunaan pernyataan pulangan memerlukan pertimbangan yang teliti. Artikel ini menangani isu biasa yang dihadapi semasa cuba menjana nombor unik menggunakan pendekatan rekursif.

Pernyataan Masalah

Seorang pembangun menghadapi senario di mana kod bar rawak unik perlu dijana. Jika kod bar yang dijana sudah wujud dalam pangkalan data, nombor rawak baharu dijana. Proses ini berterusan sehingga kod bar unik ditemui. Pembangun menggunakan fungsi rekursif untuk tujuan ini, tetapi kadangkala fungsi itu gagal menjana nombor unik dan mengembalikan "Tidak Ditetapkan."

Coretan Kod

function generate_barcode() {
  $barcode = rand(1, 10);
  $bquery = mysql_num_rows(mysql_query("SELECT * FROM stock_item WHERE barcode='$barcode'"));
  if ($bquery == 1) {
    generate_barcode();
  } else {
    return $barcode;
  }
}
Salin selepas log masuk

Analisis

Coretan kod yang disediakan berfungsi dengan betul jika terdapat nombor selain daripada 1 hingga 4 dalam pangkalan data. Walau bagaimanapun, jika semua nombor dari 1 hingga 4 diduduki, fungsi itu akan berulang tanpa henti kerana tiada nombor unik boleh dijana. Untuk menyelesaikan isu ini, fungsi perlu mengembalikan nombor yang dijana pada setiap langkah rekursif.

Coretan Kod Dibetulkan

function generate_barcode() {
  $barcode = rand(1, 10);
  $bquery = mysql_num_rows(mysql_query("SELECT * FROM stock_item WHERE barcode='$barcode'"));
  if ($bquery == 1) {
    return generate_barcode(); // Return generated number
  } else {
    return $barcode;
  }
}
Salin selepas log masuk

Dengan mengembalikan nombor yang dijana pada setiap rekursif langkah, fungsi tersebut terus menjana nombor baharu sehingga nombor unik ditemui, memastikan kefungsian yang diingini.

Atas ialah kandungan terperinci Mengapa Fungsi PHP Rekursif Memerlukan Pengendalian Penyata Pemulangan Berhati-hati?. 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