Rumah > Soal Jawab > teks badan
Sila beritahu saya, jika syarat itu benar, mengapa ia tidak menunjukkan "ok"? Saya tidak faham mengapa ia memaparkan "Tidak" jika keadaan dicetuskan.
<?php if (get_number() == "ok") { echo "ok"; } else { echo "no"; } function get_number() { $number = rand(1, 10); echo $number; if ($number == 5) { return "ok"; return false; } else { get_number(); } } ?>
P粉7416783852023-09-08 14:19:49
Blok else
块不会返回任何内容,因此除非您在第一次尝试时得到数字 5,否则它将转到 else
anda, yang memanggil dirinya sendiri tetapi sebenarnya tidak mengembalikan sebarang nilai kepada panggilan awal.
Jika fungsi tidak mengembalikan apa-apa, anda mendapat NULL
.
Juga dalam pernyataan else
块中添加一个 return
supaya nilai yang dikembalikan menggelembung sehingga panggilan awal.
if ($number == 5) { return "ok"; } else { return get_number(); }
BTW Saya harap ini bukan kod sebenar tetapi hanya beberapa ujian kerana ia pada asasnya hanyalah gema yang terlalu rumit ok
的方式。它应该永远无法到达 echo 'no';
P粉6966058332023-09-08 09:24:01
Sila tukar syarat else daripada get_number();
更改为 return get_number();
untuk membuat panggilan rekursif.
Selain itu, mengapa menggunakan 2 penyata pulangan dalam keadaan if?
return "ok"; return false;
Anda boleh menyimpan yang pertama dan memadamkan penyata pulangan kedua.