condition d'erreur de boucle conditionnelle php
P粉536532781
P粉536532781 2023-09-07 22:34:01
0
2
518

S'il vous plaît, dites-moi, si la condition est vraie, pourquoi le message « ok » ne s'affiche-t-il pas ? Je ne comprends pas pourquoi il affiche « Non » si la condition est déclenchée.

<?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

répondre à tous(2)
P粉741678385

Votre bloc else 块不会返回任何内容,因此除非您在第一次尝试时得到数字 5,否则它将转到 else, qui s'appelle tout seul mais ne renvoie aucune valeur à l'appel initial.

Si la fonction ne renvoie rien, vous obtenez NULL.

Également dans l'instruction else 块中添加一个 return afin que la valeur renvoyée remonte jusqu'à l'appel initial.

if ($number == 5) {
    return "ok";
}
else {
    return get_number();
}

BTW J'espère que ce n'est pas du vrai code mais juste quelques tests car c'est fondamentalement juste un écho trop compliqué ok 的方式。它应该永远无法到达 echo 'no';

P粉696605833

Veuillez modifier la condition else de get_number(); 更改为 return get_number(); pour passer un appel récursif.

De plus, pourquoi utiliser 2 instructions return dans la condition if ?

return "ok";
return false;

Vous pouvez conserver la première et supprimer la deuxième déclaration de retour.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!