recherche

Maison  >  Questions et réponses  >  le corps du texte

condition d'erreur de boucle conditionnelle php

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粉536532781P粉536532781524 Il y a quelques jours568

répondre à tous(2)je répondrai

  • P粉741678385

    P粉7416783852023-09-08 14:19:49

    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';

    répondre
    0
  • P粉696605833

    P粉6966058332023-09-08 09:24:01

    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.

    répondre
    0
  • Annulerrépondre