php keadaan ralat gelung bersyarat
P粉536532781
P粉536532781 2023-09-07 22:34:01
0
2
528

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粉536532781
P粉536532781

membalas semua(2)
P粉741678385

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粉696605833

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan