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(); } } ?>
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.BTW Saya harap ini bukan kod sebenar tetapi hanya beberapa ujian kerana ia pada asasnya hanyalah gema yang terlalu rumit
ok
的方式。它应该永远无法到达echo 'no';
Sila tukar syarat else daripada
get_number();
更改为return get_number();
untuk membuat panggilan rekursif.Selain itu, mengapa menggunakan 2 penyata pulangan dalam keadaan if?
Anda boleh menyimpan yang pertama dan memadamkan penyata pulangan kedua.