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(); } } ?>
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.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';
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 ?
Vous pouvez conserver la première et supprimer la deuxième déclaration de retour.