Maison > Questions et réponses > le corps du texte
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粉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';
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.